6か月以上経過したファイルを削除するスクリプト

6か月以上経過したファイルを削除するスクリプト

スクリプトで実行する毎月のクローンジョブを設定します。

スクリプトは、ファイルが大きすぎる場合は毎月ファイルを回転させ、古いファイルの名前を変更します。 6か月以上経過したファイルを削除したいです。

このスクリプトを月に一度実行したいと思います。古いものを削除できますか?

これが十分に明確ではない場合は、お知らせください。

答え1

次のように起動できます。

find /your/file -mtime +182 -exec rm {} +

+182曜日はどこにありますか?

答え2

を使用してくださいlogrotate。ほとんどのLinuxシステムですでに利用可能であり、多くのパッケージにはすでにlogrotateスクリプトが事前設定されているか、それを調整または直接作成できます。

答え3

@scottmarriott findのすべてのバージョンが+/- -mtimeをサポートしているわけではありません。どのオペレーティングシステムとfindバージョンを使用していますか? – ヨルダン 2013年5月30日 13:04

@jordanmの質問に答えるための1つの方法は、見つかったすべてのfind結果を列挙し、ループ本文でこれに対していくつかの作業を実行することですfor

# Using the general form:
for <identifier> in $(find <source-dir> -mtime +<days>) ; do <thing> ; done
 
# You could write their location to a parallel script file
echo '#!/bin/bash' > ./old.stuff
for hogfile in $(find . -mtime +182 ) ; do echo "rm $PWD/$hogfile &" >> "./old.stuff" ; done

# Make it into an executable
chmod +x ./old.stuff

# Profit
./old.stuff

関連情報