- ベストアンサー
既存のバックアップを前日の日付にリネーム
Linuxのシェルの書き方初心者です。 教えてください。 前日バックアップしたファイルはリネームし、過去2日分バックアップとして保存しておくようにしていくにはどのようにしたらいいでしょうか? 以下のものに簡単に追記できるような書き方があれば教えてください。 よろしくお願いします。 #!/bin/sh cd /home/backup tar zcvf sample.tar.gz /var/www/sample
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
あーまちがい。 変数に$を付け忘れてました。 mv -f sample_$DATE_1.tar.gz sample_$DATE_2.tar.gz mv -f sample.tar.gz sample_$DATE_1.tar.gz
その他の回答 (1)
- lowrider_2005
- ベストアンサー率40% (1520/3748)
回答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日以上たったファイルを削除するとか。
お礼
ありがとうございます。試してみます。