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

Php 设置Cron作业以在24小时后删除文件,php,cron,crontab,cron-task,Php,Cron,Crontab,Cron Task,我阅读了所有相关的问题,无法理解它们。我正在使用Plesk CPanel设置cron作业,正如大家建议的那样 我想在24小时后删除文件夹中的所有文件。假设每隔2分钟我就必须删除它(这样我就可以检查它是否工作) 我有两个选择: 或者运行一个PHP文件,使用cron作业在24小时后删除所有文件 使用cron作业命令“rm”删除所有文件 我尝试了两种方法,但都没能完成任务 以下是cpanel计划任务的图片: 我想从文件夹var/www/example.com/public/js/compiled中删

我阅读了所有相关的问题,无法理解它们。我正在使用Plesk CPanel设置cron作业,正如大家建议的那样

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

我有两个选择:

  • 或者运行一个PHP文件,使用cron作业在24小时后删除所有文件
  • 使用cron作业命令“rm”删除所有文件
  • 我尝试了两种方法,但都没能完成任务

    以下是cpanel计划任务的图片:

    我想从文件夹
    var/www/example.com/public/js/compiled
    中删除文件。应删除此
    文件夹中的所有文件。我不知道在命令文本字段中写哪个

    我应该使用以下命令吗

    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
    

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

    find /some/path -type f -mtime +7 -print0 | xargs -0 --no-run-if-empty rm
    
    不是为每个要删除的文件调用rm,
    xargs
    将许多文件打包到一个调用
    rm


    -print0
    -0
    的功能是使用以NULL结尾的字符串使
    查找
    xargs
    ,这是处理文件名及其名称中带有空格和其他有趣字符所必需的。

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

    在SSH中,只需键入

    crontab -e
    
    您将在上面看到一个cron作业列表,只需将这行代码附加到cronjob:

    0 10 * * * rm -rf /var/www/example.com/public/js/compiled/*
    
    上面的代码表示,每天上午10点,您都要删除所提供路径中的所有文件。
    有关Cron的更多信息,请参阅此链接:

    我每天删除一次对我来说很有效

    0 0 * * * rm -rf /home/user/public_html/folder
    
    如果要删除此文件夹中的所有内容,但保留文件夹本身:

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

    但他正在尝试-mtime+7在7天后删除文件,我如何能在每2分钟内删除一次,因为我知道每24小时它应该是-mtime+1,但是如果我想在每两分钟内测试它,该怎么办?该命令将删除超过7天的文件。。您可以将cron作业设置为每分钟运行一次,也可以设置为任意频率运行,以便每分钟删除超过7天的文件(在您的情况下为1天)。如果您还想修改命令进行测试,请参阅find:how to exclude.php文件的手册页?@user2290749-mmin 2注意,如果不包括
    -print0
    ,xargs可能会失败,并出现一个神秘错误
    xargs:参数行太长
    。有没有可行的解决方案?需要相同的命令。