Одно единственное задание крона, не работающее

У меня есть список заданий крона.

00 21 * * * sh ~/db_backup.sh

20 21 * * * sh ~/update.sh

* 5 1 * *  sh ~/db_vacuum.sh

Первое задание делает резервное копирование базы данных, у меня есть работа сервера Ubuntu, это работает, поскольку я проверяю дату, которую файл резервной копии был в последний раз изменен с помощью:

date -r db.sql

Мое третье задание крона просто пылесосит мой дб в начале каждого месяца. Моя проблема находится в моей второй работе. Это задание выполняет несколько обратных вызовов URL на приложении DJango, которое я запускаю:

sudo docker exec -it web_1 wget -t 0 "http://127.0.0.1:8080/admin/command1"
sudo docker exec -it web_1 wget -t 0 "http://127.0.0.1:8080/admin/command2"
sudo docker exec -it web_1 wget -t 0 "http://127.0.0.1:8080/admin/command3"
sudo docker exec -it web_1 wget -t 0 "http://127.0.0.1:8080/admin/command4"

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

sh ~/update.sh

Это работает безупречно, есть ли некоторая выгода с wgets, который я пропускаю? В случае, если это не очевидно, команды wget указывают к контейнеру докера на выполнение сервера.

ОБНОВЛЕНИЕ:

Я пытался присоединить файлы журнала как выходные файлы к командам wget в моем .sh файле. После поиска среди старых изданий после установленного времени выполнения задания крона в каталоге не было никаких файлов журнала.

Я затем проверил на самом деле системные журналы, и я заметил, что это сообщение появилось в журнале второе после того, как мой .sh файл выполнялся.

(CRON) info (No MTA installed, discarding output)

Это могло быть связано так или иначе?

7
задан 1 August 2017 в 13:05

2 ответа

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

3
ответ дан 23 November 2019 в 06:44

Я замечаю, что Вы используете sh для вызова cronjob однако sh, подмножество удара и не могло бы быть в состоянии выполнить cronjob. Также выполнение задачи вручную является не обязательно тем же как выполнением его кроном. Измените sh, чтобы избить cronjob и видеть то, что происходит.

errormessage о MTA, который Вы видите в файле журнала, означает, что у Вас нет установленного Агента Передачи почты, подразумевая, что Вам не установили программное обеспечение для отправки сообщений электронной почты. Крон пытается отправить сообщения электронной почты для информирования Вас о чем-то. Это мог бы быть errormessage о сбое cronjob.

2
ответ дан 23 November 2019 в 06:44

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

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