2013-05-01 93 views
3

我阅读了所有相关的问题,但无法理解它们。我正在使用Plesk CPanel来设置cron作业,因为它是每个人都建议的。设置Cron作业在24小时后删除文件

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

我有两个选择:

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

我试过两种方法,无法完成我的任务。

这里是计划任务的cPanel的PIC:

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

我想从文件夹var/www/example.com/public/js/complied删除文件。此complied文件夹内的所有文件都应该删除。我不知道在Command文本框中写什么。

我应该使用以下命令吗?

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

?> 

我已经测试此代码,它工作正常。

在此先感谢。

+0

任何工作解决方案?需要相同的命令。 – 2018-01-05 11:32:53

回答

5

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

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

服务器在Linux上。所以你提到的命令将工作? – user2290749 2013-05-01 19:59:26

+0

是的,它会工作。 – Sumoanand 2013-05-01 20:02:07

+0

但他正试图-mtime +7删除文件后7天我怎么能做到这一点的,每2分钟怎么我知道每个24小时其应-mtime +1,但如果我想测试它在每两分钟? – user2290749 2013-05-01 20:05:22

2

要优化MrCleanX的解决方案了一下,使用xargs

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

与其说RM为每个文件进行删除,xargs将多个文件打包到一个电话rm

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

+0

请注意,如果您不包括'-print0',xargs的可能只是失败与神秘的错误'xargs的:论点太行long'。 – 2014-04-08 22:18:28

6

如果您有权访问您的服务器或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

3

它的工作对我来说,删除每天一次

如果你想在此文件夹中删除一切,但离开这个文件夹本身
0 0 * * * rm -rf /home/user/public_html/folder 

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