即興プログラミング SVNからおとしてーのバージョン最新に切り替えーの。
( diary )タイトルの通り。 リモート一括処理したかったのでできないかなーって調べながら実装してたら意外と簡単にいけました。 全くエラー処理なんてものをいっさいしていないという不始末さ故どっかでエラーになるのは確実ですね。。。 リモートで失敗した際のエラー処理っていれられるのかな。まぁやってみないとどうしようもないということで…。
処理としては、以下の通り。
- SVNから指定のディレクトリ内にファイルをダウンロードする
- SCPでデータをリモートにある指定したディレクトリにコピー
- 新しい情報リンクを張り替える
#!/bin/zsh SAVE_DIR=`date +%Y%m%d%H%M%S` SVN_URL='http://xxx.xxx.xxx.xxx/svn/trunk/' SVN_USER='nakajijapan' SVN_PASS='nakajijapan' echo 'start' $SAVE_DIR '\n' # svn svn export $SVN_URL ./$SAVE_DIR/ --username $SVN_USER --password $SVN_PASS # copy echo '\nstart remote server \n' scp -Br ./$SAVE_DIR xxx@xxxxxxxxx:/var/www/xxx/ # rm dir echo '\nremove dir \n' rm -rf ./$SAVE_DIR # change link echo '\nchange link \n' ssh remote@nakajijapan.net /bin/rm '/var/www/data/current ; /bin/ln -s /var/www/data/'$SAVE_DIR' /var/www/data/current ; /bin/ls -al /var/www/data/'
re>