ごらくらいふ

プログラミングしたりゲームしたり

リリースするファイルに対応したバックアップを作る

本番に手作業でリリースする際、改修したファイルだけを取り出す。

リリースして問題があった場合に復元するため、バックアップを用意するが、その作業に手間取ったので備忘。

作業内容

登場するディレクトリは3種類

  1. release
    • リリースするものが詰まったディレクトリ。targetのディレクトリ構造に準じている。
  2. target
    • リリース先。
  3. backup
    • もしもの備え。
# releaseと同じディレクトリ構造のbackupディレクトリを作る
cp -rv release backup
find backup -type f -exec rm -v {} \;

# release内のファイルパスをもとに、targetからbackupへコピーする
for item in $(find release -type f | sed -e 's/^release//g')
do
    cp -v target$item backup$item
done

所感

bashでの方法を考える間に手を動かせば終わっただろうけど、次回は楽したいし、手作業でミスらないとは言えないので有意義ということにする。