Как я могу настроить logrotate для вращения журналов каждый час?

VFS уже допускает некорневое монтирование файловых систем. Можно добавить user или users опция к fstab записи и удостоверяется vfs.usermount=1 находится в /etc/sysctl.

Ни одно из этого не даст Вам подобные chroot средства управления как бы то ни было. bind опция не собирается изменять полномочия или допускать 'альтернативный' доступ, это - вторая mtab запись для той же точной файловой системы и содержания. Модификации в связывании монтируются, влияют на оригинал.

Я удостоверился бы, что Вы разъясняете свою конечную цель прежде, чем переместиться далее.

23
23.06.2014, 12:16
3 ответа

В зависимости от Вашей ОС. Некоторые (все?) Дистрибутивы Linux имеют каталог /etc/cron.hourly куда можно поместить задания крона, которые будут выполняться каждый час.

У других есть каталог /etc/cron.d/. Там можно поместить задания крона, которые должны быть выполнены как любой специальный пользователь с обычными настройками крона crontab записи (и необходимо указать имя пользователя).

Если Вы используете любой из них вместо стандартного журнала rotatation сценарий в /etc/cron.daily/ необходимо скопировать тот сценарий там и cp /dev/null к исходному положению. Еще это будет повторно активировано logrotate обновлением патча.

Для надлежащего почасового вращения также заботьтесь что dateext директива не установлена. Если так, по умолчанию первый повернутый файл получит расширение текущей даты как YYYYMMDD. Затем второй раз logrotate стал бы активным в течение того же дня, он просто пропускает вращение даже если size порог превысил.

Причина состоит в том, что новое название файла, который будет повернут уже, существует, и logrotate не добавляет содержание в существующий старый файл. Например, на RHEL и CentOS, dateext в директиве дают по умолчанию /etc/logrotate.conf. После удаления или комментируя, что строка, повернутые файлы просто получат рабочее число как расширение до достижения rotate значение. Таким образом возможно выполнить несколько вращений в день.

20
27.01.2020, 19:42

Просто добавлю к ответу Нильса: при изменении местоположения сценария logrotate в системе Debian или Ubuntu безопаснее использовать dpkg-divert вместо простого копирования файл и копирование /dev/null в исходное положение, например:

dpkg-divert --add --rename --divert /etc/cron.hourly/logrotate /etc/cron.daily/logrotate
10
27.01.2020, 19:42

Еще один вариант — добавить команду logrotate в список crontab. Затем он будет выполняться каждый час.

crontab -e

добавить строку ниже в список crontab

0 * * * * /usr/sbin/logrotate /etc/logrotate.d/my-hourly-file
3
27.01.2020, 19:42

Теги

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