Попытка понять, как настроить отдельные конфиги logrotate

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

Я попытался настроить свою собственную почасовую конфигурацию 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

Runnin это также работает:

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

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


person datacubed    schedule 26.06.2019    source источник


Ответы (1)


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

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

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

person parttimeturtle    schedule 27.06.2019