
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 {} +