2013-05-01 96 views
3

我閱讀了所有相關的問題,但無法理解它們。我正在使用Plesk CPanel來設置cron作業,因爲它是每個人都建議的。設置Cron作業在24小時後刪除文件

我想在24小時後刪除文件夾中的所有文件。假設我必須在每2分鐘後刪除它(所以我可以檢查它的工作與否)。

我有兩個選擇:

  1. 要麼運行使用cron作業
  2. 使用cron作業命令刪除24小時後,所有文件的PHP文件`rm`刪除所有文件

我試過兩種方法,無法完成我的任務。

這裏是計劃任務的cPanel的PIC:

http://i41.tinypic.com/2n0tsfs.png

我想從文件夾var/www/example.com/public/js/complied刪除文件。此complied文件夾內的所有文件都應該刪除。我不知道在Command文本框中寫什麼。

我應該使用以下命令嗎?

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); 

?> 

我已經測試此代碼,它工作正常。

在此先感謝。

+0

任何工作解決方案?需要相同的命令。 – 2018-01-05 11:32:53

回答

5

我在shell腳本中使用此...

find /some/path -mtime +7 -exec rm {} \; # delete > 7 days old 
+1

服務器在Linux上。所以你提到的命令將工作? – user2290749 2013-05-01 19:59:26

+0

是的,它會工作。 – Sumoanand 2013-05-01 20:02:07

+0

但他正試圖-mtime +7刪除文件後7天我怎麼能做到這一點的,每2分鐘怎麼我知道每個24小時其應-mtime +1,但如果我想測試它在每兩分鐘? – user2290749 2013-05-01 20:05:22

2

要優化MrCleanX的解決方案了一下,使用xargs

find /some/path -type f -mtime +7 -print0 | xargs -0 --no-run-if-empty rm 

與其說RM爲每個文件進行刪除,xargs將多個文件打包到一個電話rm

-print0-0東西是使用NULL終止的字符串作爲findxargs,這對於在名稱中使用空格和其他有趣的字符處理文件名是必需的。

+0

請注意,如果您不包括'-print0',xargs的可能只是失敗與神祕的錯誤'xargs的:論點太行long'。 – 2014-04-08 22:18:28

6

如果您有權訪問您的服務器或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

3

它的工作對我來說,刪除每天一次

如果你想在此文件夾中刪除一切,但離開這個文件夾本身
0 0 * * * rm -rf /home/user/public_html/folder 

0 0 * * * rm -f /home/user/public_html/folder/*