Задание PHP cron не может создавать новые файлы

Я разработал сценарий, который моя компания использует для резервного копирования клиентских баз данных на нашем сервере путем создания файла дампа их баз данных. Вот мой код:

$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);   
    }
}

Сценарий получает всю информацию о базе данных клиента из таблицы (backup_sites) и просматривает каждую из них, чтобы создать файл резервной копии в каталоге этого клиента. Этот сценарий отлично работает, когда его запускают вручную. Проблема, с которой я столкнулся, заключается в том, что он не работает, когда я запускаю его как задание Cron. Электронное письмо от задания Cron содержит эту ошибку для каждой попытки резервного копирования БД:

sh: site-backups/CLIENT_DIRECTORY/DB_DUMP_FILE.sql: No such file or directory

Таким образом, по какой-либо причине задание Cron не может создать / записать файл дампа БД. Я не могу понять этого. Просто кажется странным, что скрипт отлично работает при ручном выполнении. У кого-нибудь есть идеи? Заранее спасибо!

Адам

0
задан BWDesign 10 December 2011 в 16:58
поделиться