私はこれをスクリプト化するいくつかの方法を試してみましたが、crontabが失敗しないようにスクリプトを直接実行しました。以下は私が試したことの例です。
find /home/backups -mtime +1 -exec rm {} \;
find /home/backups/* -mtime +1 -exec rm {} \;
find /home/backups/ -mtime +1 -exec rm {} \;
毎日このファイルを削除する必要がありますが、うまくいかないようです。実行すると、ls -ld /home/backups
長いファイルのリストが返されます。これは最初の2つのファイルです。
-rw-r--r-- 1ルートルート8284346 1月12日13:00 arksave-2016-01-12--01-00-01.tar.gz
-rw-r--r-- 1ルートルート8295428 1月12 13:15 arksave-2016-01-12--01-15-01.tar.gz
一日が過ぎ、これが最後の2つのファイルです。
-rw-r--r-- ルート 1 個 38016124 1月13日 12:30 arksave-2016-01-13--12-30-01.tar.gz
-rw-r--r-- ルート 1個38016163 1月13日12時45分 arksave-2016-01-13--12-45-01.tar.gz
答え1
見積もり「TNW」
findが24時間前に最後にファイルにアクセスした期間を計算すると、すべての小数部分は無視されます。したがって、-atime +1 を一致させるには、ファイルに少なくとも 2 日前にアクセスする必要があります。
したがって、1日前のファイルを見つけるには、次のスニペットのいずれかを使用できます。
find /home/backups/* -mtime +0
または
find . -mmin +$((60*24))