数日ごとにバックアップファイルをローテーションするシェルスクリプト

2022-11-27 15:03 (3 years ago)
数日ごとにバックアップファイルをローテーションするシェルスクリプト

数日ごとにバックアップファイルをローテーションする (古いファイルを削除する)場合、

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

シンプルに実現できる。

まだ評価がありません
著者は、アプリケーション開発会社 Cyberneura を運営しています。
開発相談をお待ちしています。

アーカイブ