PHP cron作业无法创建新文件

BWD*_*ign 0 cron

我已经开发了一个脚本,我的公司使用它来通过创建DB的转储文件来备份我们服务器上的客户端数据库.这是我的代码:

$result=mysql_query("SELECT * FROM backup_sites");
while($row=mysql_fetch_array($result)){

    $backup_directory=$row["backup_directory"];
    $thishost=$row["host"];
    $thisusername=$row["username"];
    $thispassword=$row["password"];
    $thisdb_name=$row["db_name"];

    $link=mysql_connect("$thishost", "$thisusername", "$thispassword");
    if($link){
        mysql_select_db("$thisdb_name");
        $backupFile = $thisdb_name ."-". date("Y-m-d-H-i-s", strtotime ("+1 hour")) . '.sql';
        $command = "/usr/bin/mysqldump -h $thishost -u $thisusername -p$thispassword $thisdb_name > site-backups/$backup_directory/$backupFile";
        system($command);   
    }
}
Run Code Online (Sandbox Code Playgroud)

该脚本从表(backup_sites)获取所有客户端的db信息,并循环遍历每个客户端的db信息以在该客户端的目录中创建备份文件.手动执行此脚本时效果很好.我遇到的问题是,当我将其设置为作为Cron作业运行时,它不起作用.来自Cron作业的电子邮件包含每个数据库备份尝试的此错误:

sh: site-backups/CLIENT_DIRECTORY/DB_DUMP_FILE.sql: No such file or directory
Run Code Online (Sandbox Code Playgroud)

因此无论出于何种原因,Cron作业都无法创建/写入数据库转储文件.我无法想出这个.手动执行脚本时效果很好,这似乎很奇怪.有人有主意吗?提前致谢!

亚当

Udo*_*eld 6

考虑使用绝对路径.Cron可能有不同的基目录.