サイトを作成するときに、subversion を使ってファイルの履歴管理しています。グループで開発しているので、テストはローカルでWebサーバーを立ててチェックし、客先へはデモサーバーで公開しています。
デモサーバーに公開するには、今までシェルでsvn updateしていましたが、デザイナーからは面倒ということで、cronで自動化するようにしました。参考にさせていただいたページは、「svn update を自動化してみた」です。これを、リポジトリを増えても簡単にするため、forで回すようにスクリプトを改造。
cron でこのスクリプトを実行すると、
svn: Can’t convert string from ‘UTF-8′ to native encoding:
とエラーになりますので、先頭に
export LANG=ja_JP.UTF-8
を入れました。
#!/bin/sh
export LANG=ja_JP.UTF-8
date=`date "+%Y/%m/%d-%T"`
for repos in repos1 repos2 # ここにリポジトリを指定する。
do cd /home/webroot/$repos
echo $repos > /tmp/svn_update_"$repos"_date.log
echo "start--" `date "+%Y/%m/%d %T"` | nkf -j >> /tmp/svn_update_"$repos"_date.log
svn update > /tmp/svn_update_"$repos"_tmp.log
cat -b /tmp/svn_update_"$repos"_tmp.log > /tmp/svn_update_"$repos".log
echo "end --" `date "+%Y/%m/%d %T"` | nkf -j >> /tmp/svn_update_"$repos"_date.log
done
このページは xfy Blog Editor を利用して作成されました。
著:横田紋奈, 著:宇賀神みずき
¥2,178 (2025/04/01 17:15時点 | Amazon調べ)

コメント
“svn update をcronで自動化した話し” への1件のコメント
参照いただいたスクリプトを作成した者です。
その後、多少汎用化させたスクリプトを作りました。
http://labs.opendev.jp/misc/wiki/repos-update
もう少し汎用化させる必要がありますが…