Cron作业 - 从特定目录中删除zip文件

Lod*_*der -1 php cron joomla cron-task

我想Ø删除所有ziprar文件从一个特定的目录.我已经设置了cron来运行一个名为的PHP文件cron.php,该文件位于Joomla模块目录中.出于测试目的,我将cron作业时间设置为5分钟.

我还在一个名为的目录中放了一个zip文件 test.zip

命令:

php /home/MYUSER/public_html/MYSITE/modules/mod_module_gen/cron.php
Run Code Online (Sandbox Code Playgroud)

PHP:注意:"MYSITE"是网站所在的子域

<?php
$dir = "/home/MYUSER/public_html/MYSITE/modules/mod_module_gen/package";
$files = scandir($dir);

foreach ($files as $file) {                   
   if(preg_match("/\.(zip|rar)$/", $file)){
        unlink($file);
   }                    
} 
?>
Run Code Online (Sandbox Code Playgroud)

但是,每隔5分钟,错误日志会继续抛出以下错误:

PHP Warning:  unlink(test.zip) [<a href='function.unlink'>function.unlink</a>]: No such file or directory in /home/MYUSER/public_html/MYSITE/modules/mod_module_gen/cron.php on line 18
Run Code Online (Sandbox Code Playgroud)

不知道为什么这个错误发生的文件确实存在.有任何想法吗?

Pez*_*kow 6

我认为问题是当前目录被视为运行 PHP脚本的位置.

所以文件在:

/home/MYUSER/public_html/MYSITE/modules/mod_module_gen/package

$file删除的命令(一旦解决)是:

unlink('test.zip');

当文件从其他地方运行时(比如说~):

PHP正试图取消链接 ~/test.zip

考虑做

unlink($dir.'/'.$file)