Почему crontab выполняется на одном сервере, а на другом нет?

У меня есть два сервера на линоде, на которых есть несколько веб-сайтов. Я создал сценарий, чтобы увидеть, работает ли mysql на сервере, и если он не запущен, сценарий запустит mysql. Скрипт находится на обоих серверах и в одной файловой структуре.

Я добавил сценарий в cron с помощью команды «crontab -e» с обоими серверами. Проблема в том, что мой dev-сервер будет запускать скрипт, в то время как prod-сервер не будет работать. Я добавил пробелы в конец crontab, поэтому знаю, что проблема не в этом.

Когда скрипт запускается на prod-сервере вручную, я получаю следующее сообщение об ошибке «(Для« -p »не может быть прочитана информация: geteuid () = 1000, но вы должны быть пользователем root.)». Несмотря на то, что появляется ошибка, сценарий по-прежнему перезапускает mysql, но когда сценарий выполняется с помощью cron, mysql не перезапускается. Также обратите внимание, что я запустил сценарий на сервере разработки и получил ту же ошибку. Несмотря на наличие ошибки, сценарий будет запускаться на dev и перезапустить mysql при запуске через cron.

Когда я запускаю команду под sudo на сервере разработки, она не запрашивает пропуск, но когда я запускаю ее на сервере prod, меня спрашивают пароль.

Я проверил системный журнал и знаю, что команда cron запущена.

В сценарии используется команда netstat с параметрами -v -u -l -n -t -p.

-1
28.03.2016, 21:55
1 ответ

кое-что, на что следует обратить внимание

запустите visudo от имени пользователя root и посмотрите, указан ли там пользователь Должно быть что-то вроде (ваш пользователь, где имя пользователя)

имя пользователя ВСЕ= (ВСЕ )NOPASSWD :ВСЕ

Это позволит вам использовать sudo без пароля. Если нет, добавьте его, а затем повторите попытку.

Теперь, если он по-прежнему не запускается как cron, это звучит так, как будто запись cron верна, но, возможно, сценарий неправильный. Похоже у вас кроны палят от того что вы написали вы это видели в системных журналах. попробуйте chmod 755 /path/to/script.sh

Повторно запустить задание cron.

Если он по-прежнему не запускается, проверьте владельца скрипта. имя пользователя chown /path/to/script.sh

Дайте нам знать, если это поможет.

0
28.01.2020, 05:13

Теги

Похожие вопросы