Журналы Cron отсутствуют в / var / log / syslog [closed]

У меня есть задача cron с printf:

#!/bin/bash

# ..........
printf "hello\n"
# ..........

Она запускается один раз в N часов. Однако в / var / log / syslog я вообще не вижу журналов со словом «привет». Почему бы и нет?

-2
задан 23 June 2018 в 19:50
1 ответ

Разработчики cron предполагали, что пользователи cron будут соответствующим образом направлять вывод (stdout & stderr) и, таким образом, любой вывод, который не был перенаправлен ни на одну из файл или другой процесс, скорее всего, был ошибкой.

Их выбор состоял в том, чтобы пересылать через sendmail весь ложный (т. е. не перенаправленный) вывод владельцу задания cron.

Если вы проверите / var / log / syslog , вы должны найти такую ​​запись:

 Jun 26 22:18:01 sys0af3e3 CRON[16529]: (CRON) info (No MTA installed, discarding output)

Программа, обычно вызываемая cron, - это / usr / sbin / sendmail, но вы можете проверить, какая из них используется в вашей реализации, запустив:

 strings /usr/sbin/cron | grep -i '^/.*mail'

Если вы должны были создать / usr / sbin / sendmail (он должен быть исполняемым) с содержимым:

 echo "####################" >> /tmp/mail.out 2>&1
 date >> /tmp/mail.out 2>&1
 cat >> /tmp/mail.out 2>&1

затем запустите:

 systemctl restart cron  #this must be run as root

вы обнаружите, что недостающий вывод добавляется к файлу /tmp/mail.out после каждого запуска.

Не забудьте удалить / usr / bin / sendmail и перезапустите cron после завершения теста.

3
ответ дан 5 December 2019 в 21:10

Теги

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