Я установил следующий crontab -
sudo crontab -e
01 21 * * * /usr/local/bin/sqlbackup.sh -e
Он должен запускать sqlbackup.sh в 21.01 каждую ночь, но никогда не запускается. вот журнал ошибок
cron[2339]: (root) RELOAD (crontabs/root)
CRON[31600]: (root) CMD (/usr/local/bin/sqlbackup.sh -e)
CRON[31599]: (CRON) error (grandchild #31600 failed with exit status 2)
CRON[31599]: (CRON) info (No MTA installed, discarding output)
Я установил разрешение 777 и владелец root. Я могу запустить файл, введя указанный выше путь к файлу.
Кажется, что ваш скрипт завершает работу со статусом 2, который cron интерпретирует как ошибку.
Выходит ли он со статусом 0, если запускать вручную?
/usr/local/bin/sqlbackup.sh -e
echo $?
Убедитесь, что вы не допускаете ложных предположений о среде при запуске cron. В частности, используйте абсолютные пути при вызове других скриптов или двоичных файлов.
Попробуйте заменить задание cron на sh -x /usr/local/bin/sqlbackup.sh -e
- затем он должен отображать построчную информацию о выполнении (хотя я никогда не пробовал это с cron).