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

投稿者: ytyng 1年, 5ヶ月 前

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

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

シンプルに実現できる。

現在未評価

コメント

アーカイブ

2024
2023
2022
2021
2020
2019
2018
2017
2016
2015
2014
2013
2012
2011