我浏览了这个网站和其他人,找到一个简单的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。
答案 0 :(得分:2)
您只能使用bash执行此操作。不需要php:
find /your/directory -type f -mmin +720 -exec rm {} \;
- mmin参数是文件年龄,以分钟为单位
如果您在共享服务器上,您仍然可以尝试使用shell_exec()执行此操作,大多数主机允许此操作
你也忘了跳过&#39;。&#39;和&#39; ..&#39;在循环中