сценарий крона, не работающий sudo

Я испытываю некоторые проблемы, пытающиеся назвать сценарий удара как a cronjob который просто не будет работать.

Вот для устранения некоторых возможных источников отказа:

  • Я отредактировал крон через sudo crontab -e
  • Сценарий, как предполагается, работает каждую ночь в 4:00, таким образом, команда 0 4 * * * bash ~/nightly_backup.sh
  • Сценарий расположен в /home/myuser/nightly_backup.sh
  • Сценарий работает полностью самостоятельно и не имеет никакой потребности ни в каком вводе данных пользователем
  • Вызов его вручную через sudo bash ~/nightly_backup.sh работает просто великолепно
  • Существует другая команда в crontab, который, как планируют, будет работать каждые 5 минут и хорошо работает также (fswebcam -r ...)

Что я делаю неправильно?

Кроме того: поиск сегодня, если сценарий работал, я вижу системный журнал, в котором говорится следующее:

Feb  7 04:00:01 localhost CRON[7767]: (root) CMD (bash ~/nightly_backup.sh)
Feb  7 04:00:01 localhost CRON[7764]: (CRON) info (No MTA installed, discarding output)
Feb  7 04:00:03 localhost CRON[7765]: (CRON) info (No MTA installed, discarding output)
  • Что не делает "никакого MTA установленный, отбрасывающий вывод", средний?
1
задан 7 February 2018 в 14:36

1 ответ

Основная проблема, кажется: использование ~ которые относятся к home из текущего пользователя.

Больше деталей о проблеме:

  • Когда Вы выполняете команду вручную, значение ~ /home/myuser (myuser домой)
  • Когда Вы выполняете команду с помощью крона, значения ~ /root (root домой)

Так как файл не находится в /root/nightly_backup.sh cron не может выполнить его.

Решение:

Замена:

0 4 * * * bash ~/nightly_backup.sh

С:

0 4 * * * /home/myuser/nightly_backup.sh

Отметьте, необходимо удостовериться, что сценарий оболочки, выполняются - способный, путем выполнения следующей команды (однажды):

chmod +x /home/myuser/nightly_backup.sh

Примечание: Относительно Вашего другого вопроса

Что не делает "никакого MTA установленный, отбрасывающий вывод", средний?

Этому ответили здесь

Короче говоря: Это происходит, потому что Ваши задания крона производят вывод, и затем демон крона пытается послать тот вывод по электронной почте Вам, в то время как у Вас нет почтового сервиса установленным в Вашей системе.

Можно решить его одним из следующих методов (больше информации в здесь)

  • Проигнорируйте сообщение
  • Почтовый сервер установки
  • Перенаправьте вывод задания крона в/dev/null
  • Перенаправьте вывод задания крона в logger и Вы будете видеть его в syslog журналы
3
ответ дан 7 December 2019 в 12:30

Другие вопросы по тегам:

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