フォルダから20日以上経過したtar.gzファイルを見つけて削除します。

フォルダから20日以上経過したtar.gzファイルを見つけて削除します。

CIFSインストールフォルダに/ var / wwwフォルダのバックアップ(tar.gz)を作成するバックアップスクリプトがあります。

メモリを浪費する古いバックアップを削除するために、アーカイブが20日以上古いことを毎日確認し、必要に応じて特定のtar.gzファイルを削除するcronjobを作成しました。

私の計画はこんな感じです。

0 1 * * * find /my/cifs/mnt/path/*.tar.gz -mtime +20 -exec rm {} \;

そうなんですか?問題はありませんが、バックアップフォルダ内のファイルだけでなく、20日以上経過したハードドライブ上のすべてのファイルを削除します。

ベストアンサー1

通常、次の-nameオプションを使用します。

 0 1 * * * find /my/cifs/mnt/path/ -name '*.tar.gz' -mtime +20 -exec rm {} \;

また、ぜひ探してみてください文書:

 0 1 * * * find /my/cifs/mnt/path/ -name '*.tar.gz' -type f -mtime +20 -exec rm {} \;

この-nameオプションを分割すると、指定したディレクトリとそのサブディレクトリにファイルを見つけることができます。また、アーカイブがない場合はfindエラーが報告されます(何もしないで単に続行するのではありません)。

最後に、コマンドの終わりを変更して、珍しい文字(スペースなど)を含むファイル名を処理できます。

 0 1 * * * find /my/cifs/mnt/path/ -name '*.tar.gz' -type f -mtime +20 -exec rm {} +

おすすめ記事