使用PHP脚本和cron删除x天以上目录中的文件

时间:2013-01-04 10:29:59

标签: php cron

我浏览了这个网站和其他人,找到一个简单的PHP脚本,我可以使用它与cron删除目录中X天以上的文件。似乎有很多,但没有一个适合我。我在共享服务器(G C解决方案)和托管服务器很棒,但我正在使用的包不包括shell访问权限,所以我认为我不能使用.sh或bash命令。

我有一个简洁的PHP脚本来做我的数据库的Mysqldump,将其复制到我家区域的目录(/ home / mysite / backups)并通过电子邮件发送给我一份 - 这一切都正常。现在我试图运行一个脚本,只需要在备份目录中留下5天的备份。我目前正在尝试这个脚本: -

<?php


$dir = opendir('/home/mysite/backups");
if ($dir) {

        // Read directory contents
    while (false !== ($file = readdir($dir))) {

        // Check the create time of each file (older than 5 days)
        if (filemtime($file) < (time() - 60*60*24*5)) {
            unlink($file);
        }
    }
}
?>

它不起作用,我的cron设置字符串是: - php -q /home/mysite/public_html/scripts/delold6.php

我已经尝试从html_public上面运行它,没有快乐,备份目录权限设置为755,当我的备份脚本将转储复制到此目录时,文件设置为644.我尝试将这些文件修改为777 - 没有快乐。谁能在这里帮忙。 * find / path / to / your_directory -mtime +5 -exec rm -f {} \; *也不适用于cron。

1 个答案:

答案 0 :(得分:2)

您只能使用bash执行此操作。不需要php:

 find /your/directory -type f -mmin +720 -exec rm {} \;

- mmin参数是文件年龄,以分钟为单位

如果您在共享服务器上,您仍然可以尝试使用shell_exec()执行此操作,大多数主机允许此操作

你也忘了跳过&#39;。&#39;和&#39; ..&#39;在循环中