Пытаясь понять, как настроить отдельные конфигурации logrotate - PullRequest
0 голосов
/ 26 июня 2019

Я прошу прощения, если я неправильно понял, как это работает.

Я попытался настроить свою собственную почасовую конфигурацию logrotate, которая, похоже, не повлияла на вкладки cron.

Я приведу ниже свои файлы, и если кто-то может указать на ошибку, которую я сделал, я был бы очень благодарен.

/ etc / logrotate_hourly.d / upstart

/var/log/upstart/*.log {
    hourly
    copytruncate
    missingok
    size 1M
    rotate 1
    compress
    notifempty
    nocreate
}

/ etc / logrotate_hourly.d / nginx

/var/log/nginx/*.log {
    hourly
    missingok
    rotate 0
    size 200M
    compress
    notifempty
    sharedscripts
        postrotate
        [ ! -f /run/nginx.pid ] || kill -USR1 `cat /run/nginx.pid`
        endscript
}

/ etc / logrotate_hourly.conf

# see "man logrotate" for details
# rotate our custom log files hourly
hourly

# use the syslog group by default, since this is the owning group
# of /var/log/syslog.
su root syslog

# packages drop log rotation information into this directory
include /etc/logrotate_hourly.d

/ etc / cron.hourly / logrotate

#!/bin/sh

# Clean non existent log file entries from status file
cd /var/lib/logrotate
test -e status || touch status
head -1 status > status.clean
sed 's/"//g' status | while read logfile date
do
    [ -e "$logfile" ] && echo "\"$logfile\" $date"
done >> status.clean
mv status.clean status

test -x /usr/sbin/logrotate || exit 0
/usr/sbin/logrotate /etc/logrotate_hourly.conf

Запуск следующих работ, как и ожидалось:

sudo logrotate -f /etc/logrotate_hourly.conf

Запуск также работает:

sudo /usr/sbin/logrotate /etc/logrotate_hourly.conf

Но кажется, что cron / ежечасное логротирование никогда не происходит.
Везде, где вы читаете людей, говорящих: «Вам не нужно ни перезапускать службу, ни перезагружаться, чтобы новые логроты вступили в силу».
Я нашел одного человекаговоря, что они имели успех с изменением конфигурации и перезагрузкой.Все не правы или ему повезло?
Я стараюсь не перезагружаться, когда мы создаем изображения для автоматического масштабирования aws от amazon, и, таким образом, он просто раскручивает моментальный снимок.

1 Ответ

0 голосов
/ 27 июня 2019

Hourly не означает ничего для логирования, это недопустимая директива. Man:

Обычно logrotate запускается как ежедневное задание cron. Это не изменит регистрировать несколько раз в течение одного дня, если критерий для этого журнала не является в зависимости от размера журнала и logrotate запускается несколько раз каждый день или если не используется опция -f или --force.

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

...