1

我环顾了这个站点和其他站点,找到了一个简单的 php 脚本,我可以使用它与 cron 一起删除目录中超过 X 天的文件。似乎有很多,但没有一个对我有用。我在共享服务器(GC 解决方案)上,主机很棒,但我所在的包不包括 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 中也不起作用。

4

1 回答 1

2

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

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

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

如果您在共享服务器上,您仍然可以尝试使用 shell_exec() 执行此操作,大多数托管服务商都允许这样做

你也忘了跳过'。和 '..' 在循环中

于 2013-01-04T10:36:55.957 回答