Я написал сценарий php, который создает резервную копию базы данных mysql и запускает ее ежедневно, используя crontab на сервере Ubuntu, но сценарий никогда не выполняется (по крайней мере Ну, это похоже).PHP-скрипт не запускается как задание cron на сервере Ubuntu
- Сценарий называется backup.php.
- Создает резервную копию (sql в архиве gz) и сохраняет ее в папке/резервной копии.
- Он добавляет несколько строк текста в /backup/log.txt.
Скрипт вызывается в кронтабе для корневого пользователя, как это (Sudo кронтаб -e):
* * * * * php -f /var/www/cmdb/backup.php
(время должно быть скорректировано, но это для целей тестирования.)
Ничего не произошло. Файл не создается, журнал не изменяется.
Однако все из следующих тестов успеха:
- Запуск сценария непосредственно в консоли с помощью
php backup.php
- Запуск хрон:
* * * * * php -v > /var/www/cmdb/backup/php-v.txt
- Запуск хрон:
* * * * * php -f /var/www/cmdb/test.php > /var/www/cmdb/backup/text.txt
(написание строки в файл)
Я думаю, что эти испытания показывают, что:
- backup.php скрипт работает без ошибок
- Cron запущен
- Резервной папка записываемая
- команды PHP доступна из кронтаба
Итак, почему не делает backup.php что-нибудь при запуске от crontab?
Привет, Пол, у вас есть несколько выходов (эхо, печать, print_r и т.д.) для целей отладки в коде? Это может остановить выполнение кода при запуске в качестве запланированной задачи. –
Вы проверили, является ли скрипт php исполняемым? Что говорят журналы? Что в скрипте? Помните, что пути в скрипте должны быть полными, а не относительными. – fedorqui
Без каких-либо результатов регистрации/ошибок мы не можем помочь. Одна очевидная вещь - это то, что пользователь является скриптом PHP, выполняющимся, как при запуске cron? Имеет ли он разрешения, необходимые для выполнения своей работы? – GordonM