一定期間後に新しいファイルを自動で移動する

一定期間後に新しいファイルを自動で移動する

サービスを通じて不規則な間隔でファイルを受け取り、別のフォルダにアーカイブする前に 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時間以上経過したファイルのみが移動されます。

関連情報