
我透過一項服務以奇數間隔接收文件,並且需要將它們在一個資料夾中保留 72 小時,然後再存檔到另一個資料夾中。我想自動化這個流程。理想情況下,這將是一項監視「正在使用」資料夾中新檔案的服務,記錄它們到達的時間,然後在 3 天後將它們移至存檔。
我目前正在運行一個 crontab 條目,該條目每 72 小時運行一次,將正在使用的資料夾的全部內容移至存檔資料夾。這會導致給定文件的可用性視窗與不再需要時移動該文件之間出現同步問題。
答案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
是will的結果所在的地方\;
告訴find
傳遞的命令exec
已完成
如果您願意,可以將其放入您的 cron 作業中並每小時運行一次。僅移動 72 小時或更早的文件