• ベストアンサー

既存のバックアップを前日の日付にリネーム

Linuxのシェルの書き方初心者です。 教えてください。 前日バックアップしたファイルはリネームし、過去2日分バックアップとして保存しておくようにしていくにはどのようにしたらいいでしょうか? 以下のものに簡単に追記できるような書き方があれば教えてください。 よろしくお願いします。 #!/bin/sh cd /home/backup tar zcvf sample.tar.gz /var/www/sample

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

あーまちがい。 変数に$を付け忘れてました。 mv -f sample_$DATE_1.tar.gz sample_$DATE_2.tar.gz mv -f sample.tar.gz sample_$DATE_1.tar.gz

ymoshimoshi
質問者

お礼

ありがとうございます。試してみます。

その他の回答 (1)

回答No.1

#!/bin/sh DATE_1="`date --date '1 days ago' +%Y%m%d` DATE_2="`date --date '2 days ago' +%Y%m%d` cd /home/backup mv -f sample_DATE_1.tar.gz sample_DATE_2.tar.gz mv -f sample.tar.gz sample_DATE_1.tar.gz tar zcvf sample.tar.gz /var/www/sample とか? (ホントはtarコマンドを最初に実行してテンポラリディレクトリに保存し、その成功を確認してからリネーム~削除した方が安全かとは思います。上のスクリプトだと3日失敗するとバックアップがすべて消失します) または最初から日付付きのtar.gzファイルを作成して、 最後にfindコマンドで2日以上たったファイルを削除するとか。

関連するQ&A