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

时间:2013-05-01 19:50:27

标签: php cron crontab cron-task

我阅读了所有相关问题但无法理解。我正在使用Plesk CPanel设置cron工作,因为每个人都建议这样做。

我想在24小时后删除文件夹中的所有文件。假设我必须在每2分钟后删除它(所以我可以检查它的工作与否)。

我有两个选择:

  1. 运行使用cron作业24小时后删除所有文件的PHP文件
  2. 使用cron job命令`rm`删除所有文件
  3. 我尝试了两种方式,无法完成任务。

    以下是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);
    
    ?>
    

    我已经测试了这段代码,但效果很好。

    提前致谢。

4 个答案:

答案 0 :(得分:7)

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

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

答案 1 :(得分:7)

如果您可以访问服务器或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

答案 2 :(得分:6)

我每天都要删除一次

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

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

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

答案 3 :(得分:3)

要优化MrCleanX'解决方案,请使用xargs

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

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

的单个调用中

-print0-0的内容是使用NULL终止字符串同时使findxargs成为字符串,这对于处理带空格和其他有趣字符的文件名是必要的。他们的名字。

相关问题