Назад | Перейти на главную страницу

Два скрипта в /etc/cron.daily, кажется, вращают мои журналы: logrotate и sysklogd

Кажется, что мои файлы журналов, созданные syslog, меняются дважды в день. Я считаю, что это связано с тем, что /etc/cron.daily/logrotate и /etc/cron.daily/sysklogd выполняют перекрывающуюся работу.

Вот соответствующие строки из сценария sysklogd:

logs=$(syslogd-listfiles)

test -n "$logs" || exit 0

for LOG in $logs
do
   if [ -s $LOG ]; then
      savelog -g adm -m 640 -u ${USER} -c 7 $LOG >/dev/null
   fi
done

Каковы лучшие распространенные практики для решения этой проблемы? Должны ли файлы, созданные syslog, не отображаться в logrotate? Что, если я хочу использовать некоторые из более продвинутых функций logrotate, такие как сценарии postrotate - должен ли я попытаться заставить это сделать /etc/cron.daily/sysklogd или мне следует закомментировать эти строки и позволить logrotate сделать это?

Я был очень раздражен, когда sysklogd начал ротацию журналов - это не значит, что это отсутствующая функция, которой не было в другом месте. Однако в моих системах logrotate не настроен для каких-либо действий с системными журналами - это то, что вы настроили вручную?

Чтобы сохранить принцип наименьшего удивления, я оставляю sysklogd для ротации его собственных журналов (исходя из того, что, если кому-то еще нужно поддерживать одну из моих систем, лучше, если они будут использовать поведение по умолчанию, где это возможно), но если вы хотите, чтобы logrotate расширенный функции, я бы отключил задание sysklogd cron, закомментировал указатель на правильное место и пошел бы logrotate wild.

Какая раздача?

Если вы запустите "syslogd-listfiles", будет ли какой-либо из файлов, выводимых в этом списке, также управляться через файл в /etc/logrotate.d/?

Глядя на мой ящик Ubuntu, /etc/cron.daily/sysklogd на самом деле ничего не делает, потому что / usr / sbin / syslogd-listfiles не существует.