数日ごとにバックアップファイルをローテーションする (古いファイルを削除する)場合、
find backup-dir/ -mtime +10 | xargs rm
としたり、 logrotate
を使って実現させたりする。
1日1づつ増える日数の連番を、% 10 とかでシャーディングすればいいことに気づいたので、最近は以下の方法で行っている。
# 一日ごとにシャード番号が変化する。 10 日でローテーションする。
date_shard=$(( ( $(date +%s) / 86400 ) % 10 ))
backup-command > backup-dir/backup.${date_shard}
echo $(date +"%F %T") Done. shard=${date_shard} >> backup-dir/log.txt
シンプルに実現できる。
コメント