簡體   English   中英

設置Cron作業以在24小時后刪除文件

[英]Setting Cron job to delete file after 24 hours

我閱讀了所有相關問題,但無法理解。 我正在使用Plesk CPanel設置cron工作,因為它是每個人都建議的。

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

我有兩個選擇:

  1. 運行一個PHP文件,使用cron作業在24小時后刪除所有文件
  2. 使用cron job命令`rm`刪除所有文件

我嘗試了兩種方式,但無法完成任務。

這是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終止字符串來生成findxargs ,這對於處理名稱中包含空格和其他有趣字符的文件名是必要的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM