即興プログラミング SVNからおとしてーのバージョン最新に切り替えーの。

( diary )

タイトルの通り。 リモート一括処理したかったのでできないかなーって調べながら実装してたら意外と簡単にいけました。 全くエラー処理なんてものをいっさいしていないという不始末さ故どっかでエラーになるのは確実ですね。。。 リモートで失敗した際のエラー処理っていれられるのかな。まぁやってみないとどうしようもないということで…。

処理としては、以下の通り。

  1. SVNから指定のディレクトリ内にファイルをダウンロードする
  2. SCPでデータをリモートにある指定したディレクトリにコピー
  3. 新しい情報リンクを張り替える
#!/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>