设置Cron作业以在24小时后删除文件

use*_*749 4 php cron crontab cron-task

我阅读了所有相关问题,但无法理解.我正在使用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/*.*
Run Code Online (Sandbox Code Playgroud)

或者我应该执行php文件?

env php -q/var/www/example.com/public/js/cron.php
Run Code Online (Sandbox Code Playgroud)

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

?>
Run Code Online (Sandbox Code Playgroud)

我测试了这段代码,它工作正常.

提前致谢.

小智 8

我在shell脚本中使用它...

find /some/path -mtime +7 -exec rm {} \; # delete > 7 days old
Run Code Online (Sandbox Code Playgroud)


JiN*_*xus 7

如果您可以访问服务器或SSH,只需将其添加到crontab即可.

在你的SSH中输入

crontab -e
Run Code Online (Sandbox Code Playgroud)

你会看到一个cron作业列表,只需将这行代码附​​加到你的cronjob:

0 10 * * * rm -rf /var/www/example.com/public/js/compiled/*
Run Code Online (Sandbox Code Playgroud)

上面的代码表示每天上午10点,您将删除所提供路径中的所有文件.有关Cron的更多信息,请参阅此链接:http://en.wikipedia.org/wiki/Cron


mog*_*gul 6

要稍微优化 MrCleanX 的解决方案,请使用xargs

find /some/path -type f -mtime +7 -print0 | xargs -0 --no-run-if-empty rm
Run Code Online (Sandbox Code Playgroud)

不是为每个要删除的文件调用 rm,而是xargs将许多文件打包到一个调用中rm

-print0-0的东西是使两者findxargs用NULL结尾的字符串,这是必要的,在他们的名字空间和其他有趣的字符来处理文件名。


Shu*_*man 6

它让我每天删除一次

0 0 * * * rm -rf /home/user/public_html/folder
Run Code Online (Sandbox Code Playgroud)

如果要删除此文件夹中的所有内容,请保留文件夹本身:

0 0 * * * rm -f /home/user/public_html/folder/*
Run Code Online (Sandbox Code Playgroud)