PHP Exec Cron Job возвращает неожиданный EOF - PullRequest
0 голосов
/ 15 сентября 2018

Я пытаюсь запустить скрипт php во время задания cron, чтобы выгрузить базу данных MySQL в папку для резервного копирования.

$DBHost = 'localhost';
$DBName = 'mydatabase';
$DBUser = 'myuser';
$DBPassword = 'mypassword';

$PATH = "/home/mysite/Backups/";
$FILE_NAME = "backup-" . date( "Y-m-d_H:i:s" ) . ".sql.gz";
exec( '/usr/local/bin/mysqldump -u ' . $DBName . ' -p' . $DBPassword . ' ' . $DBName . ' | gzip --best > ' . $PATH . $FILE_NAME );

Но я продолжаю получать ошибку:

sh: -c: строка 0: неожиданный EOF при поиске соответствия `) '

sh: -c: строка 1: синтаксическая ошибка: неожиданный конец файла

Я проверил все ) и не могу найти несоответствие. Если я закомментирую команду exec, я не получу сообщение об ошибке.

Кто-нибудь видит, что я делаю неправильно?

1 Ответ

0 голосов
/ 15 сентября 2018

Почему бы не написать весь код в sh?

#!/bin/bash 
dbname="database"
dbuser="user"
dbpass="password"

path="/home/backup"

now=$(date + "%Y-%m-%d")

/usr/bin/mysqldump -u $dbuser -p$dbpass $dbname | gzip > $path/backup_$now.sql.gz

сохраните его, например, как backup.sh,

, а затем используйте crontab -e для добавления нового задания cron (например, 2:15 ежедневно)

15 2 * * * /home/backup/backup.sh
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...