
サービスを通じて不規則な間隔でファイルを受け取り、別のフォルダにアーカイブする前に 72 時間、1 つのフォルダで利用できるようにする必要があります。このプロセスを自動化したいと考えています。理想としては、これは「使用中」フォルダで新しいファイルを監視し、到着時刻を記録し、3 日後にアーカイブに移動するサービスです。
現在、使用中のフォルダーの内容全体をアーカイブ フォルダーに移動するために 72 時間ごとに実行される crontab エントリを実行しています。これにより、特定のファイルの使用可能期間と、不要になったときに移動する期間との間で同期の問題が発生します。
答え1
次のようなものが機能します:
find /source/location -maxdepth 1 -mtime +3 -type f -exec mv "{}" /destination/location/ \;
仕組み:
find
アイテムを探す/source/location
-maxdepth 1
指定されたディレクトリのみを検索し、サブディレクトリは無視します。-mtime +3
結果は3日間に制限されますまたはそれ以上-type f
結果をファイルのみに限定します-exec
その結果に対してコマンドを実行します。この場合はmv
"{}"
の結果がどこにfind
行くのか\;
find
渡されたコマンドがexec
完了したことを通知します
これをcronジョブに入れて、必要に応じて1時間ごとに実行します。72時間以上経過したファイルのみが移動されます。