Месяц назад я установил cron для входа в /var/log/cron.log
by изменение /etc/rsyslog.d/50-default.conf
. Ведение журнала работало отлично, пока я не изменил разрешения на / var / log
(ослабив ограничения разрешений) и не принудил logrotate повернуть журналы, выполнив logrotate --force /etc/rsyslog.d/50- default.conf
. С тех пор похоже, что cron перестал регистрироваться. /var/log/cron.log
больше не существует. Я выполнил sudo touch /var/log/cron.log
, чтобы создать его, но с тех пор осталось 0 байт.
Подробнее о том, что я сделал с разрешениями:
Я запустил sudo chmod 775 / var / log
, а затем снова изменил разрешения с помощью sudo chmod 755 / var / log
.Похоже, что все остальные службы ведут журнал правильно, и задания cron фактически выполняются (проверено с помощью ps aux | grep rsync
, поскольку я запускаю rsync только через cron).
Я не был уверен в правильности прав доступа пользователя и группы для cron.log
, поэтому я попытался изменить его на syslog: adm
, как и большинство других файлов журналов, но это не помогло, поэтому я снова переключил его на root: root
,
Текущие разрешения на cron.log: -rwxr-xr-x 1 root root 0 27 апреля, 16:34 cron.log
Не уверен, что делать дальше. Я знаю, что могу вести журнал cron в любой файл, который мне нужен (либо добавив >> / path / to / logfile
в конец записей задания cron, либо отредактировав /etc/rsyslog.d /50-default.conf
), но для единообразия я бы предпочел продолжить запись в cron.log. Я полагаю, я мог бы добавить >> /var/log/cron.log
в конец каждой записи cron, но мне это кажется немного взломанным.
РЕДАКТИРОВАТЬ: В соответствии с моим комментарием ниже я изменил местоположение журнала на /tmp/cron.log
, и ведение журнала возобновилось. Сначала я предположил, что это означает, что права доступа к папке или файлу неверны. Однако я проверил их на другой машине с тем же дистрибутивом, и права доступа к папке были правильными. Права доступа к файлам были недостаточно строгими, правильные разрешения можно установить с помощью sudo chmod 640 cron.log
.
В качестве теста я удалил пустой cron.log, и он больше никогда не создавался. Я изменил конфигурацию rsyslogd, чтобы он регистрировался в crond.log, но файл так и не был создан.