自動で定期的にファイルを削除する

2021年06月13日

radcastで録音したファイルが溜まってきたので、cronを利用して一定期間経過したファイルを自動削除する。
ファイルの最終更新日が3週間(21日)より前のファイルを対象とする。

最終更新日が3週間より前のファイルを検索する

今回は対象を削除するので先に検索だけを行い、結果が想定したものになっているか確認しておく。
$ find /home/ubuntu/radcast-docker/recorded -mtime 21

リストアップされた対象のファイルを削除する

$ find /home/ubuntu/radcast-docker/recorded -mtime 21 | xargs rm -rf

cronに登録して定期実行

crontab -eを利用してジョブを登録する方法もあるが、crontab -rとのタイプミスが怖いので、 /etc/cron.d配下に直接ファイルを配置してcronジョブを登録する。
/etc/crontabがテンプレートファイル?なのでこちらをコピーして利用する。
$ sudo cp /etc/crontab /etc/cron.d/radcast-recorded-clean
以下を作成したファイルに書き込んで保存する。
* 5 * * sun root find /home/ubuntu/radcast-docker/recorded -mtime +21 | xargs rm -rf
毎週日曜日の朝5時に最終更新日が3週間より前のファイルを削除している。

cronログの有効化

$ sudo nano /etc/rsyslog.d/50-default.conf
コメントアウト解除(行頭の#を削除)
#cron.* /var/log/cron.log

参考


Profile picture

Written by eginoy