Где мой лог-файл crontab?

9

нет / var / log / cron, нет /var/log/cron.log на моем debian7, где находится мой лог-файл crontab?

ls /var/log/cron*
ls: cannot access /var/log/cron*: No such file or directory
it_is_a_literature
источник

Ответы:

13

Я думаю на debian cronпишет логи в /var/log/syslog.
Если ваша система зависит от rsyslogили syslogdвы можете проверить и раскомментировать либо в /etc/rsyslog.confили /etc/syslog.confдля строки:

# cron.* /var/log/cron.log

а затем перезапустите сервисы.

Если ваша система зависит, systemdнапример, вы можете проверить с помощью следующей команды:

journalctl _COMM=cron

или

journalctl _COMM=cron --since="date" --until="date"

Для формата даты вы можете проверить journalctl .

taliezin
источник
нет /etc/rsyslog.con и /etc/syslog.conf в моем debian7.
it_is_a_literature
Для первого файла это опечатка должна быть /etc/rsyslog.conf, если вы не используете systemd.
Тализин
о чем sudo journalctl --since yesterday -u cron.service? Что такое _COMM?
Дашесы
4

По умолчанию выходные данные crontabзаданий отправляются на локальный адрес электронной почты пользователя-владельца. Например: crontabвыходные данные для пользователя aUser на хосте www.aDomain.com будут отправлены на адрес aUser@www.aDomain.com . Система использует почтовую программу по умолчанию для выполнения задачи.

Вы можете перенаправить эти выходные данные на альтернативный адрес электронной почты, добавив MAILTOоператор в файл crontab. Например:

# Mail any output to myuser@gmail.com, no matter whose crontab this is
MAILTO=myuser@gmail.com
# Run the following command ten minutes after midnight, every day
10 0 * * *       $HOME/bin/aJob.sh 

Будьте осторожны при использовании внешнего адреса электронной почты для получения журналов crontab. Часто отправляемые сообщения могут попасть в спам-фильтр. Затем вам нужно будет пометить сообщения как не спам для таких служб, как Yahoo, HotMail или Gmail.

Альтернативным решением было бы перенаправить вывод ваших команд crontab в файл по вашему выбору. В приведенном ниже примере stdoutи stderrвывод отправляется на /tmp/aJob.log. Этот метод исключает возможность отправки сообщения электронной почты.

# Run the following command ten minutes after midnight, every day
10 0 * * *       $HOME/bin/aJob.sh >> /tmp/aJob.log 2>&1

Другой альтернативой является отправка stderrжурналов по электронной почте и stdoutжурналов в файл. В этом случае вы получите уведомление по электронной почте, когда ваши crontabкоманды генерируют неожиданные сообщения об ошибках. Разница с предыдущим примером заключается в том, что 2>&1он удален, чтобы stderrвыводить вывод на консоль и, следовательно, на электронную почту.

# Mail any output to myuser@gmail.com, no matter whose crontab this is
MAILTO=myuser@gmail.com    
# Run the following command ten minutes after midnight, every day
10 0 * * *       $HOME/bin/aJob.sh >> /tmp/aJob.log

Подробнее CRONTAB таблицы и кронтаб команды

ikrabbe
источник
1

Так как он не помечен как debian и также появляется в поисках fedora, вот как проверить последние (на основе systemd) fedora:

sudo systemctl status crond

Типичный вывод

 crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2019-09-29 16:09:21 CEST; 47min ago
 Main PID: 1167 (crond)
    Tasks: 1
   Memory: 2.8M
      CPU: 948ms
   CGroup: /system.slice/crond.service
           └─1167 /usr/sbin/crond -n

Sep 29 16:09:21 ncelrnd0216 systemd[1]: Started Command Scheduler.
Sep 29 16:09:21 ncelrnd0216 crond[1167]: (CRON) STARTUP (1.5.4)
Sep 29 16:09:21 ncelrnd0216 crond[1167]: (CRON) INFO (Syslog will be used instead of sendmail.)
Sep 29 16:09:21 ncelrnd0216 crond[1167]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 31% if used.)
Sep 29 16:09:21 ncelrnd0216 crond[1167]: (CRON) INFO (running with inotify support)

и allжурналы с

journalctl --unit crond -n all
eddygeek
источник