Php 设置Cron作业以在24小时后删除文件
我阅读了所有相关的问题,无法理解它们。我正在使用Plesk CPanel设置cron作业,正如大家建议的那样 我想在24小时后删除文件夹中的所有文件。假设每隔2分钟我就必须删除它(这样我就可以检查它是否工作) 我有两个选择: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中删
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:参数行太长
。有没有可行的解决方案?需要相同的命令。