4

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

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

我有两个选择:

  1. 使用 cron 作业运行 24 小时后删除所有文件的 PHP 文件
  2. 使用 cron 作业命令 `rm` 删除所有文件

我尝试了两种方法,但无法完成我的任务。

这是cpanel计划任务的图片:

http://i41.tinypic.com/2n0tsfs.png

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

我应该使用以下命令吗?

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

4 回答 4

10

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

find /some/path -mtime +7 -exec rm {} \; # delete > 7 days old
于 2013-05-01T19:55:47.933 回答
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

于 2014-11-04T10:10:21.477 回答
6

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

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

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

和东西是制作-print0和使用 NULL 终止的字符串,这是处理名称中包含空格和其他有趣字符的文件名所必需的。-0findxargs

于 2013-05-17T12:41:23.887 回答
6

每天删除一次对我有用

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

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

0 0 * * * rm -f /home/user/public_html/folder/*
于 2016-03-24T10:35:48.857 回答