По умолчанию cron логи пишутся в файл /var/log/syslog, а результат выполнения заданий отправляется на email пользователю от имени которого выполняется задание, например при выполнении скрипта у меня добавлялась запись в /var/log/syslog:
CRON[33522]: (root) CMD (/scripts/ixnfo.sh >/dev/null 2>&1)
Кстати чтобы результат выполнения не отправлялся на email в конце команды у меня как раз добавлено:
>/dev/null 2>&1
Чтобы дублировать сообщения в отдельный файл, то откроем конфигурацию /etc/rsyslog.d/50-default.conf и раскомментируем строку:
cron.* /var/log/cron.log
Чтобы логи CRON писались только в отдельный файл и не писались в /var/log/syslog, то строку выше не трогаем, а откроем в текстовом редакторе конфигурацию /etc/rsyslog.conf и после:
###########################
#### GLOBAL DIRECTIVES ####
###########################
Добавим:
:programname, startswith, "CRON" /var/log/cron.log
:programname, startswith, "CRON" stop
Проверим корректность конфигурации rsyslog:
rsyslogd -N 1
Перезапустим rsyslog чтобы применить изменения:
service rsyslog restart
Кстати еще можно указать так:
:programname, startswith, "CRON", -/var/log/cron.log
& ~
Либо так:
if ( $programname startswith "CRON" ) then {
action(type="omfile" file="/var/log/cron.log" flushOnTXEnd="off")
stop
}
Или так:
if $programname startswith "CRON" then -/var/log/cron.log
&~
Смотрите также мои статьи:
Использование и настройка CRON
Установка Rsyslog + Loganalyzer + MySQL