ソースコードのファイル配信

2011年7月14日(木)
sanonosa

配信スクリプト

それでは早速配信スクリプトをご紹介します。なお、事前準備として、配信時に自動的にバックアップされる先となるディレクトリを作成しておく必要があります。

  $ 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}"

国内某有名ITベンチャー企業に創業メンバーとして携わる。国内最大規模のシステムを構築運用してきたほか、社内情報システム導入のプロジェクトマネジメント、韓国の交友関係が豊富なことから韓国関連で多数のシステムインテグレーションなども行ってきた。前職は富士通株式会社でSE。
個人blog:http://nosa.cocolog-nifty.com/

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています