連載 :
VPSサービスを複数台構成で使うソースコードのファイル配信
2011年7月14日(木)
配信スクリプト
それでは早速配信スクリプトをご紹介します。なお、事前準備として、配信時に自動的にバックアップされる先となるディレクトリを作成しておく必要があります。
$ mkdir /home/user/oldsrc $ mkdir /home/user/oldsrc.1 $ mkdir /home/user/oldsrc.2 $ mkdir /home/user/oldsrc.3
配信スクリプトは以下の通りです。このスクリプトを、例えば ssync.sh などといった名前で保存して使います。
#!/bin/bash # パラメータ設定 SVR_FROM=1 # サーバー番号始まり SVR_TO=2 # サーバー番号終わり。サーバー台数が増えた場合変更してください。 SRC_DIR=/var/www/html # ソースコードが置かれているディレクトリ # 初期設定 cur_date=`date +%Y%m%d_%H%M%S` log=/home/user/sync_host_${cur_date}.log # start echo "# start: `date +%H:%M:%S` #" | tee -a ${log} # バックアップ rsync -lpgotDz --recursive --delete-after /home/user/oldsrc.2/* /home/user/oldsrc.3/ rsync -lpgotDz --recursive --delete-after /home/user/oldsrc.1/* /home/user/oldsrc.2/ rsync -lpgotDz --recursive --delete-after /home/user/oldsrc/* /home/user/oldsrc.1/ rsync -lpgotDz --recursive --delete-after user@host${SVR_FROM}:${SRC_DIR} /home/user/ol dsrc/ echo "Last update: " `date` "(host)" > /home/user/oldsrc/lastupdate.txt # 配信 for i in `seq ${SVR_FROM} ${SVR_TO}`; do echo "########## host${i} sync start ##########" | tee -a ${log} rsync -lpdgotDvz --recursive --delete-after ${SRC_DIR} user@host${i}:${SRC_DIR}/../ >> $ {log} echo "" | tee -a ${log} echo "##### host${i} sync end #####" | tee -a ${log} echo "" | tee -a ${log} echo "" | tee -a ${log} done # 最終処理 echo "# end: `date +%H:%M:%S` #" | tee -a ${log} echo "" | tee -a ${log} echo "log file is ${log}"
連載バックナンバー
Think ITメルマガ会員登録受付中
Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。