• ベストアンサー

cronで週ごとのバックアップをとりたい。

下記のようなスクリプトを毎週月曜日に実行しています。 月曜日の日付を7で割った商の値*によりback-*に保存する仕組みです。 しかし、月によりback-0やback-4に保存されない場合があり、 もっと、スマートなやり方があるのかなと思います。 もし、ご存じでしたらお教えください。 (4週分ぐらいバックアップできれば問題ありません。) #!/bin/sh a=`date +%d` b=`expr $a / 7` case $b in 0) rsync -acouv --stats --delete /home /backup/back-0 ;; 1) rsync -acouv --stats --delete /home /backup/back-1 ;; 2) rsync -acouv --stats --delete /home /backup/back-2 ;; 3) rsync -acouv --stats --delete /home /backup/back-3 ;; 4) rsync -acouv --stats --delete /home /backup/back-4 ;; esac

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

>しかし、月によりback-0やback-4に保存されない場合があり、 特に問題はないと思うので、そのままでいいのではないでしょうか。 >もっと、スマートなやり方があるのかなと思います。 その月の何回目のバックアップであるのかをカウントすることも出来ますが、わざわざ手間を掛けるだけのメリットがないと思います。 あと、case を使わなくても、下記で良いのでは? #!/bin/sh a=`date +%d` b=`expr $a / 7` rsync -acouv --stats --delete /home /backup/back-$b

apache6
質問者

お礼

ご回答ありがとうございます。 caseを使わないやり方は参考になりました。

その他の回答 (1)

  • Nii
  • ベストアンサー率48% (79/162)
回答No.1

以下が参考になるかと Linuxサーバー内データの自動バックアップを行う。 http://centossrv.com/backup.shtml

apache6
質問者

お礼

ご回答ありがとうございます。 参考にさせていただきます。

関連するQ&A