cloudpack の 自称 Sensu芸人 の かっぱこと 川原 洋平(@inokara)です。 構成管理ツールの一つ Ansible を使う機会があったので簡単にまとめてみます。 参考 Ansible Documentation Ansible ことはじめ ホストの登録 一覧の作成 以下のような方法で… ちまちま手入力とか… aws-sdk を利用したりとか… export ANSIBLE_HOSTS カレントディレクトリにホスト一覧(例:hosts)を作成して以下を実行する。
リトライ処理をするシェルスクリプトを作成してみました。 (今回、sub.shがリトライ対象です) # cat test.sh #/bin/sh trap 'echo "NG: $?"' ERR set -e # ... RETRY_COUNT=5 RETRY_INTERVAL=1 set +e COUNT=0 while true; do /root/sub.sh if [ $? -eq 0 ]; then break fi if [ $COUNT -eq $RETRY_COUNT ]; then echo "Timeout!" >&2 exit 1 fi COUNT=`expr $COUNT + 1` sleep $RETRY_INTERVAL done set -e # ... exit 0 正常終了するように呼び出しスクリプトを記述してみます。 # cat sub.sh #!/bin
表記の件、下記のシェルスクリプトで作成できます。 PREFIX=$1 SIZE=$2 AMOUNT=$3 for COUNTER in `seq 1 1 $AMOUNT`; do INDEX=`printf "%06d" $COUNTER` dd if=/dev/zero of=$PREFIX-$INDEX bs=1024 count=`expr 1024 * $SIZE` done 次のように引数を指定して利用します。 第一引数: ファイル名のPrefix 第二引数: ファイルサイズ 第三引数: ファイル数 # ../test.sh test 10 100 # ll -h 合計 1000M -rw-r--r-- 1 root root 10M 2月 1 20:53 2013 test-000001 ... -rw-r--r-- 1 root root 10M 2月 1 20:53 201
シェルスクリプトで例外処理(try-catch文)のような動作を行うには、set -eとtrapを使うことで可能です。 まず、正常終了(exit 0)する下記のスクリプト(sub.sh)を用意します。 #!/bin/sh echo sub exit 0 そして、sub.shを呼び出すmain.shを用意します。 #!/bin/sh ./sub.sh echo OK exit 0 このシェルスクリプトを実行すると、当然、下記のように出力されます。 # ./main.sh sub OK 次にsub.shを異常終了(exit 1)するようにします。 #!/bin/sh echo sub exit 1 この場合でも、main.shは最後(echo OK)まで処理されます。 ./main.sh sub OK そこで、異常終了した時点で処理を終了するにはset -eを使います。 set -eはコマンド
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く