[英]Setting Cron job to delete file after 24 hours
我閱讀了所有相關問題,但無法理解。 我正在使用Plesk CPanel設置cron工作,因為它是每個人都建議的。
我想在24小時后刪除文件夾中的所有文件。 假設我必須在每2分鍾后刪除它(所以我可以檢查它的工作與否)。
我有兩個選擇:
我嘗試了兩種方式,但無法完成任務。
這是cpanel計划任務的圖片:
http://i41.tinypic.com/2n0tsfs.png
我想從文件夾var/www/example.com/public/js/complied
刪除文件。 應刪除此complied
文件夾中的所有文件。 我不知道在Command textfield中寫哪個。
我應該使用以下命令嗎?
rm /var/www/example.com/public/js/compiled/*.*
或者我應該執行php文件?
env php -q/var/www/example.com/public/js/cron.php
這個Cron.php的源代碼是:
<?php
$dir = "compiled"; // directory name
foreach (scandir($dir) as $item) {
if ($item == '.' || $item == '..')
continue;
unlink($dir.DIRECTORY_SEPARATOR.$item);
echo "All files deleted";
}
//rmdir($dir);
?>
我測試了這段代碼,它工作正常。
提前致謝。
我在shell腳本中使用它...
find /some/path -mtime +7 -exec rm {} \; # delete > 7 days old
如果您可以訪問服務器或SSH,只需將其添加到crontab即可。
在你的SSH中輸入
crontab -e
你會看到一個cron作業列表,只需將這行代碼附加到你的cronjob:
0 10 * * * rm -rf /var/www/example.com/public/js/compiled/*
上面的代碼表示每天上午10點,您將刪除所提供路徑中的所有文件。 有關Cron的更多信息,請參閱此鏈接: http : //en.wikipedia.org/wiki/Cron
它讓我每天刪除一次
0 0 * * * rm -rf /home/user/public_html/folder
如果要刪除此文件夾中的所有內容,請保留文件夾本身:
0 0 * * * rm -f /home/user/public_html/folder/*
要稍微優化MrCleanX的解決方案,請使用xargs
:
find /some/path -type f -mtime +7 -print0 | xargs -0 --no-run-if-empty rm
xargs
不是為每個要刪除的文件調用rm,而是將多個文件一起打包到一個rm
調用中
-print0
和-0
東西是使用NULL終止字符串來生成find
和xargs
,這對於處理名稱中包含空格和其他有趣字符的文件名是必要的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.