Назад | Перейти на главную страницу

Ошибка Cron getpwnam () не удалось выполнить резервное копирование БД

Пытаюсь узнать, как реализовать задание cron с помощью php.

cron отформатирован так /etc/crontab

 * 13 * * * /usr/bin/php /var/www/path/to/file/database-bkup-test.php &>/tmp/mycroncommand.log

Таким образом, это должно работать в 13 часов ежедневно (13:00).

Я просмотрел статус службы с

sudo systemctl status crond.service -l

Обнаружил следующую ошибку:

(/ usr / bin / php) ОШИБКА (ошибка getpwnam ())

У меня это настроено с помощью PHP, сценарий в основном такой:

$today = date('Y-m-d');
$user = 'db_user';
$password = 'db_password'; 
$host = '127.0.0.1'; //this is actually replaced with an address to another remote server
$port='3306';
$database='database_name';

exec('mysqldump --user='.$user.' --password='.$password.' --host='.$host.' --port='.$port.' '.$database.' > /db-bkup/db-'.$today.'.sql');

конечным результатом будет дамп базы данных в файл:

db-2017-03-24.sql

Может ли кто-нибудь мне помочь?

Я потратил время на чтение и попытки реализовать это. Я нашел этот пост очень полезным

Поскольку задание не выполняется, все это даже не создает журнал в /tmp.

Обновить

Добавлен простой cron для вывода "Hello World";

* / 2 * * * * корень /scripts/test.php &> / tmp / mycrontest.log

На этот раз у меня есть журнал, в котором указано Permission Denied. Полагаю, это потому, что я никогда не применял / usr / bin / php

Это шаг вперед от исходной ошибки.

Благодаря Конн Уорвикер выше для помощи в решении проблемы:

Я пропустил пользователя корень из моей работы cron.

 * 13 * * * root /usr/bin/php /var/www/path/to/file/database-bkup-test.php &>/tmp/mycroncommand.log