Linuxのシェルで日付時刻名のフォルダにファイルをバックアップする

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

SVNを使った簡易デプロイスクリプトを書いていて必要になったのでメモ。

このコードの例では、現状のフォルダを現在の日付でバックアップ(移動)し、新たにSVNから最新のファイルを現状のフォルダに再配置している。

#!/bin/sh
DIRNAME=`/bin/date '+%Y%m%d-%H%M%S'`
mkdir /home/user/snapshots/www-$DIRNAME
 
#/var/www/web/以下のファイルを全て、www-YMD-HMS形式のフォルダに移動させる
mv /var/www/web/ /home/user/snapshots/www-$DIRNAME/
 
#以下はSVNでエクスポートしてみる例
svn export https://svn.repository.com/projectname/trunk /var/www/web/

SVNでexportコマンドを使う場合、export先にファイルがあるとエラーになる。

–forceオプションで上書きできるが、削除されたファイルはexportだと削除してくれないのでデプロイとしても不都合。つまり、新バージョンでは消した余分なファイルが、デプロイ先の環境で残り続けることになる。

従ってexport先をクリーンアップしなければいけないのだけど、削除してしまうと万一のことがあると困る。

なので名前をつけてバックアップし、exportしなおすというもの。




込み入ったデプロイはcapistranoを使うべきだろうけど、簡単なものならこの程度で十分。

サーバ固有の設定ファイルとかがある場合には、適宜対応する感じで。

記事の品質向上のため、感想をお聞かせください。

  • 分かりやすかった・ためになった (2)
  • 分かりにくかった・ためにならなかった (2)
  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

SNSでもご購読できます。

コメントを残す

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)