シェル

シェルで一定期間を過ぎた古いファイルを削除する(7日前など)

Linux でバックアップファイルを作成する際、いつ作成したのかがわかりやすいようにファイル名に日付を付けることが多いです。

例えば以下のような感じですね。

今回は、このバックアップファイルが溜まってきた時の対処法について紹介したいと思います。

findと-ctimeを組み合わせる

今まで、1 週間前のデータは date 関数で 7 日前をピンポイントで指定していたのですが、find 関数の -ctime 使えばもっと簡単だったことが判明しました。

7日前の特定

「7日前の特定」は date 関数を使って 7 日前を特定する方法です。

find 関数で洗い出し

次に find 関数を使って 7 日前以前を特定する方法です。

上の例では、該当ファイルがなかった場合の対応はしていませんが、いろいろと応用もきくと思います。

atime(アクセス時間) 指定日数内にアクセスされたファイル
ctime(作成時間) 指定日数内に属性変更されたファイル
mtime(修正時間) 指定日数内に修正、更新されたファイル