のアーカイブ

zabbix_getを使ってメモリ使用量を求める

2017年4月19日

# サーバのメモリ使用量を求める ``` zabbix_get -s 127.0.0.1 -k vm.memory.size[used] ``` このコマンドではlinuxなどの使用により、ほぼ100%近い値が毎回出てしまう。 なので、全体量から空いている量を引いたものを使用量とすることで実際の使用量を求めることができる。 ``` expr `zabbix_get -s 127.0.0.1 -k vm.memory.size[total]` - `zab
続きを読む

nginxでawstatsをインストール(設定)

2017年4月19日

# nginxのconfファイルの設定 ``` server { listen 8080; server_name example.com; root /usr/share/awstats/wwwroot/; location ~ \.pl$ { gzip off; fastcgi_pass phpfpm;      include /etc/nginx
続きを読む

echoで改行しないようにする

2017年4月18日

echoコマンドを使うと最後に改行が入ってしまう。 入らないようにするには以下のようにオプションにnを付ける。 ``` echo -n "改行なし" ```
続きを読む

awkのバグ(最小値を求める)

2017年4月14日

# awkで最小値を求める awkで最小値を求める際バグで改行が計算結果に入ってしまう場合がある。 その時は以下のように、最初に空行を削除してソートを行い、1行目を取り出すことで最小値を求めることができる。 ``` awk '{print [任意の変数(ex.$2)]}' | grep -v '^\s*$' | sort -n | sed -n 1p ``` また、awk内で比較して最小値を求めることもできる。 ``` awk 'NR==1{min=$
続きを読む

python内でコマンドを使用する

2017年4月14日

# python内でコマンドを使用 python内でコマンドを実行するにはsubprocessを使用する。 ``` import subprocess cmd = "コマンド" proc = subprocess.check_output(cmd, shell=True) ``` # pythonの変数を仕様 pythonの変数を使うには以下のようにcmdに引数を渡す。 ``` cmd = "コマンド %s" % (変数) ```
続きを読む

違うアカウント間でLambdaを使ってS3のデータのやり取りをする

2017年4月12日

アカウントAからアカウントBのS3にアクセスする方法 ``` client = boto3.client('s3', aws_access_key_id='', aws_secret_access_key='Bのシークレットアクセスキー') ``` これでアカウントAのlambdaからアカウントBのS3にアクセスすることが出来る。 またこのようにすることでS3からtx
続きを読む

サーバからコマンドでS3にファイルをアップロード

2017年4月11日

s3cmdをインストールすることで出来るようになる。 ``` yum -y --enablerepo epel install s3cmd ``` にてs3cmdをインストール ``` s3cmd --configure ``` でアクセスキーとシークレットアクセスキーを入力。 あとはEnterやYを入力していけばインストール完了。 アクセスキーとシークレットアクセスキーはAWSのアカウントから作成することが出来る。
続きを読む

crontabで日付指定でファイルを作成

2017年4月11日

これを追加することで出来る。 ``` `date +\%Y\%m` ``` ex. ``` /var/log/`date + \%Y\%m`/... ``` ※crontab内だと%はメタ文字になるので「\」を忘れないように!
続きを読む

nmapコマンドを使ってポートスキャン

2017年3月30日

ポートスキャンは以下のコマンドで行うことができる。 ``` nmap [IP] ``` またポートを指定したい場合は以下のようにオプションにpを指定する。 ``` nmap -p [ポート番号] [IP] ```
続きを読む

sshで確立されたものはlogに出力しないようにする(iptables)

2017年3月28日

以下を実行しiptablesに条件を追加することで、不要なsshのログを出力しないようにできる。 ``` iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT ```
続きを読む

シェルからファイルに書き込みがあるか、ファイルが存在するかを確認する

2017年3月23日

シェル内で以下のようにすることでファイルに文字があるかどうか確認することが出来る。 ファイルによってコメントアウトの部分(今回は#)が違うので、その都度変える。 ``` CHECK=`grep -ve '#' -e '^$' [ファイルのパス]` test -n "$CHECK" if [ $? -eq 1 ] ; then echo "空文字" else echo "文字あり" fi ``` また ``` if [ -e "ファイルの
続きを読む

awkの中でシェルの変数を使う

2017年3月21日

awkコマンドでは、パターンとアクション部分に分かれており、今回はパターンでの変数の使用方法になる。 awkコマンドでは、そのままでは変数として認識しないため以下のようにする。 ``` '${変数名}' ``` また変数はそのまま代入されるので文字として認識してほしい場合は¥"とすることでダブルクォーテーションがメタ文字ではなく、文字として認識される。 ``` '¥"${変数名}"' ```
続きを読む

検索でヒットした行数を取得する

2017年3月16日

``` grep -c 検索文字 検索データ ``` これだけで行数を知ることができる。 vオプションをつければしなかった行を取得できる。
続きを読む

ネットワーク転送量を確認

2017年3月14日

``` sar -n DEV -f [ファイル名] | grep -e [NICのタイプ] | grep -ve 'Average¥|平均値' | awk '{printf "%s IN %-11s Mbps OUT %-11s Mbps\n", $1, $6/1024*8, $7/1024*8;}' | sort ``` これで転送量をより見やすく確認することが出来ます。 サーバの言語が日本語か英語によってawkの使用する変数が変わってくるので注意が必要。 ま
続きを読む

yumとrpm

2017年2月28日

# yum yumでは内部でrpmを実行しており、rpmより高機能。  依存関係のあるものも自動でインストールしてくれる。 ``` yum install [パッケージ] ``` # rpm rpmでは依存関係のあるものは自動でインストールできないので、依存関係のないものをインストールするのに向いている。 ``` rpm -ivh [パッケージ] ``` しかし、依存関係のあるのもので、依存関係に依存してほしくない場合がある **(
続きを読む

mod_rewriteを使ってURLを偽装する

2017年2月23日

wordpressディレクトリの.htaccessに  ``` RewriteEngine on RewriteRule (.*) http://URL/ [R=301,L] ``` を追加することで、自サイトに飛んできた時に好きなURLにリダイレクトや違うURLでも同じ挙動をするようにできる。 様々な表現があるので要注意。 [R]や[L]部分はしたいことによって変える必要があることにも注意!
続きを読む

lambda関数からDynamoDBにデータを追記する

2017年2月21日

put_itemを用いることでDBに追記することができる。 ``` table.put_item( Item={ 'id': event["id"], 'email': event["email"] } ) ``` しかし、put_itemは既存の要素を上書きする可能性があるので、オプションでattribute_not_existsを使用し、項目が存在し
続きを読む

htmlからtableのタグを抽出+文字のみを抽出

2017年2月16日

sedコマンドを使用することでhtmlから任意のタグのみを抽出することが出来る ``` sed -ne '///g' ``` 他にも正規表現を使うことで様々なことが出来る。  オプションの順番が違うと上手く行かないので注意が必要。 eオプションは必ず最後!
続きを読む

KeyError例外を回避

2017年2月7日

``` test = (lambda e: {"title": e["title"], "link": e["link"], "published": e["published"]}) ``` と辞書検索して要素がなかった場合KeyError例外が発生してしまうため以下のようにget関数を用いると良い。 ``` test = (lambda e: {"title": e.get("title"), "link": e.get("link"), "publ
続きを読む

無料で何でもできるサーバ管理ツールAjentiのインストール

2017年2月2日

インストール方法 CentOS6の場合は以下のコマンドでパッケージをインストール ## # curl https://raw.githubusercontent.com/ajenti/ajenti/1.x/scripts/install-rhel.sh | sh https://:8000にアクセスと出るがそのままでは無理なので、8000番ポートを開放 ``` vim /etc/sysconfig/iptables #以下を追加 -A
続きを読む