tkuchikiの日記

新ブログ https://blog.tkuchiki.net

2014-05-01から1ヶ月間の記事一覧

ec2 instance の name tag と private ip を /etc/hosts に追記する

aws ec2 describe-instances が返す json を parse して、 /etc/hosts に private ip, name tag を追記するスクリプトです(name tag を hostname としてる場合を想定しています)。 aws configure をしている前提で書いていますが、 そうでない場合は、適宜 r…

python のワンライナーで、json の任意のキーの値を出力する

jq を使わないで行う方法です。 $ echo '{"hosts":[{"name":"host1"},{"name":"host2"}]}' | python -c "exec(\"import json,sys\\nj=json.load(sys.stdin)\\nfor attr in j.get('hosts'):\\n print attr.get('name')\")" host1 host2 python のコードに改行…

git push したら commit log を mail で送信する

git

自前で git をホスティングしているリポジトリに対して push したときに、 commit log を mail で送信する方法です。/path/to/repo/.git/hooks 以下に、所謂コミットフックを行うためのファイルがあります。そのなかに、post-receive.sample というファイル…

Bash で動作するプログレスバー

tkuchiki/bash-progress-bar · GitHub を実装しました。実装した関数は2つで、 progress_bar TIMES CURRENT は、TIMES に何回繰り返すか、CURRENT が何回目かを引数に取ります。 TIMES=10, CURRENT=1 の場合、1 / 10 * 100 = 10% のようになるので、 決まっ…

Ubuntu 14.04 で Docker 0.11.0 を動かす

Ubuntu 14.04 で Docker 0.11.0 を動かしたかったのですが、 apt-get update apt-get install -y docker.io で install される Docker の version が、 0.9.1 でしたので、Binaries - Docker Documentation を参考に install しました。 apt-get install -y …

現在の shell を shellscript の中から確認する(Linux, BSD 両対応)

現在の shell(以下、current shell) を確認する方法として真っ先に思い浮かぶのは以下だと思います。 $ echo $SHELL /bin/bash ただ、これは不正解で、$SHELL はあくまでも login shell ですので、 login shell と current shell が違う場合は正しい値を返し…

Monit でログを監視してプロセスを再起動させる

Monit を使って、 ログに特定の文字列が書き込まれた時にプロセスを再起動させる例です。以下の要件を満たすために検証しました。 原因を調べきれていないけれど時々セグフォしてしまう ずっと落ちたままだと困るので再起動させたい 数分で起き上がってくれ…