我想在我的主機上刪除一個文件夾及其內容,如果它超過一天。問題是,我沒有如何使用linux cron作業來做這件事。我也應該說,我已經看過谷歌,什麼都沒有出現。我認爲這是一個非常簡單的問題,請幫助我。由於如何刪除比一天早的文件夾? (Cron Job)
回答
這應做到:
find /path/to/dir -maxdepth 0 -ctime +1 -exec rm -fr {} +
但要小心,和第一的cron
外測試,沒有-exec
一部分,所以你不要意外刪除別的東西。
我會修改什麼來更改天數? '+ 1'部分?這也是在網絡服務器上運行。 –
我正在使用cpanel,因爲目錄會像'public_html/website/uploads'一樣嗎? –
@KronoFiles真的取決於您的託管服務提供商。如果某個命令在cron中輸出,則cron通常會通過電子郵件發送要使用的輸出。你可以運行'find public_html/website'而不用任何其他參數來打印那裏的所有文件和子目錄,它應該通過電子郵件發送給你。基於這個輸出,你可以找出正確的使用路徑。 – janos
我假設你想刪除一個包含其所有內容的文件夾,只要該文件夾中的最新文件在過去24小時內沒有被更改過。
這裏是一個解決方案,它可能不是最優雅:
首先,使用此命令刪除其修改時間早於24小時內所有文件:
find /path/to/the/folder -type f -mtime +0 -print0 | xargs -0 rm
然後,試着刪除文件夾內的所有文件夾,包括文件夾本身:
find /path/to/the/folder -depth -type d -print0 | xargs -0 rmdir
這隻會刪除不包含任何文件的文件夾。也就是說,如果文件在第一步之後仍然存在(因爲它們的修改時間戳不早於24小時),那麼您的文件夾(可能包含子文件夾)將保留。如果cronjob重複運行,那麼在某個時間點 - 只要文件夾內沒有小於24小時的文件,那麼您的文件夾及其所有內容都將被刪除。
如下你可以把這個變成一個文件/etc/cron.d/folder-cleanup:
*/5 * * * * root find /path/to/the/folder -type f -mtime +0 -print0 | xargs -0 rm ; find /path/to/the/folder -depth -type d -print0 | xargs -0 rmdir
這樣,你的清理過程將運行每5分鐘。
這種方法的缺點是您的文件夾將逐步消失。我不確定這是否是您需要的。
它通過電子郵件發送給我這個'find:/public_html/kronofiles.com/uploads/1/':沒有這樣的文件或目錄 rmdir:丟失操作數 嘗試rmdir - 幫助'以獲取更多信息.' –
您可以運行'find/public_html/kronofiles.com/uploads/1 /'並將輸出粘貼到http://pastebin.com/並告訴我Pastebin鏈接? –
首先查看哪些文件將被刪除:
find /path/to/dir -type d -mtime +1 -print
然後,一旦準備好執行://計算器:
find /path/to/dir -type d -mtime +1 -print0 | xargs -0 rm -r
- 1. 刪除Y文件夾中比X天早的每個文件
- 2. 刪除所有比X天更早的文件夾(SHELL)
- 3. PowerShell從txt文件中刪除比X天更早的文件夾
- 4. 刪除比今天的日期更早的文件
- 5. PowerShell的 - 刪除文件日期早丹X天,但排除的文件夾
- 6. Cron作業自動刪除7天以上的文件夾Linux
- 7. 在zip壓縮文件中刪除一個「比...早」的文件
- 8. 在Windows中使用批處理文件刪除比x天更早的文件
- 9. Shellscript - 檢查一個文件夾並刪除該文件夾內早於一個小時的文件
- 10. Cron Job - 從特定目錄中刪除zip文件
- 11. 得到了比X天的所有文件夾(os.walk),刪除
- 12. shell cron job運行一個php文件
- 13. 使用cron或launchctl刪除最早的五個文件
- 14. RollingFileAppender也會刪除比某個日期早的文件
- 15. 查找比X天更早的文件,排除其他一些文件
- 16. Cron Job on 1and1
- 17. 刪除文件,這些文件比一些天數的
- 18. Powershell刪除文件夾,如果所有文件比x天更舊
- 19. get DateTime.UtcNow.Ticks比一天早
- 20. 用Cron作業按大小刪除文件夾內的文件
- 21. Gulp:如何刪除一個文件夾?
- 22. 刪除文件夾和文件,如果文件夾的日期是30天
- 23. Cron Job - Dreamhost
- 24. cpanel cron job url
- 25. 如何刪除7天以前的文件夾C#/ NET
- 26. 刪除日期早於7天的CSV文件中的行
- 27. Kohana的Cron Job
- 28. 快速刪除比2天前更早的行
- 29. Mysql查詢刪除比其他日期早30天的DATE
- 30. 存儲過程刪除比N天更早的記錄
的可能重複(HTTP [-mtime文件超過1小時年長。 com/questions/543946/mtime-files-older-1-hour) – paxdiablo
這是用於文件,而不是文件夾。 –
然後你使用'-type d'而不是'-type f'。底線是,你正在看'find -mtime ...'。 – paxdiablo