LINUX.ORG.RU
ФорумAdmin

logrotate. Условия ротации применяются для всех файлов в списке или для каждого?

 


0

1

Всем привет.

Нужно ротировать логи каждый час.

Сделал так:

/usr/local/mgr5/var/acctstat.log
/usr/local/mgr5/var/backup2_cp.log
/usr/local/mgr5/var/backup2.log
/usr/local/mgr5/var/backup2_system.log
/usr/local/mgr5/var/core_acme_sh.log
/usr/local/mgr5/var/core.auth.log
/usr/local/mgr5/var/core.log
/usr/local/mgr5/var/core.long.log
/usr/local/mgr5/var/dkimkeyfix.log
/usr/local/mgr5/var/expire_logs_value
/usr/local/mgr5/var/filemgr.log
/usr/local/mgr5/var/globalindex.log
/usr/local/mgr5/var/ihttpd.log
/usr/local/mgr5/var/ispmgr.auth.log
/usr/local/mgr5/var/ispmgr.log
/usr/local/mgr5/var/ispmgr.long.log
/usr/local/mgr5/var/ispmgrnode.auth.log
/usr/local/mgr5/var/ispmgrnode.log
/usr/local/mgr5/var/ispmgrnode.long.log
/usr/local/mgr5/var/ispmgrstat.log
/usr/local/mgr5/var/licctl.log
/usr/local/mgr5/var/longtask.log
/usr/local/mgr5/var/mgrctl.log
/usr/local/mgr5/var/mysqlstat.log
/usr/local/mgr5/var/nginx.log
/usr/local/mgr5/var/nodesync_logs
/usr/local/mgr5/var/pkgcheck.log
/usr/local/mgr5/var/pkg.log
/usr/local/mgr5/var/srvmon.log
/usr/local/mgr5/var/traffstat.log
/usr/local/mgr5/var/upload.log
/usr/local/mgr5/var/usagestat.log
/usr/local/mgr5/var/xmlinstall.log
{
        rotate 30
        size=20M
        missingok
        notifempty
        hourly
        compress
        olddir old_logs
        delaycompress
        create 0600 root root
        sharedscripts
        postrotate
                 /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
        endscript
}

size=20M рассчитывается если в сумме все перечисленные сверху логи будут >20, то ротировать их или правило применяется к каждому логу? - например, если acctstat.log >20, а остальные <20, то ротировать только acctstat.log.

К каждому.

anc ★★★★★
()
Ответ на: комментарий от AS

Спасибо.

Не понятно вот что. В конфиге помечено как hourly, но logrotate в cron.daily. Значит надо в crontab -e настроить типа

@hourly /usr/sbin/logrotate -f /etc/logrotate.d/my_logrotate

Если так, то в чем смысл писать в моём конфиге hourly, еще через час все равно не происходит ротации?

yatakoi
() автор топика
Последнее исправление: yatakoi (всего исправлений: 1)
Ответ на: комментарий от yatakoi

Если так, то в чем смысл писать в моём конфиге hourly, еще через час все равно не происходит ротации?

В общем всё правильно думаешь. Чтобы hourly был действительно hourly, надо с таким интервалом и запускать. Или чаще. А уж как - это как удобнее.

AS ★★★★★
()
Ответ на: комментарий от yatakoi

logrotate это не демон, а команда такая же как например ls. Вы можете её запускать хоть каждую секунду, а можете раз в год. Выбор за вами, каким образом это делать, вручную, кроном, системд таймерами и так далее. А вот то что она сделает описано как раз в её конфиге.
ЗЫ Результаты работы по умолчанию различаются по путям, зависит от дистра. Поэтому просто man logrotate поиск по state

anc ★★★★★
()
Ответ на: комментарий от anc

Не могу понять, почему с такими параметрами файл xmlinstall.log имел размер <1M, но всё равно на него сработала ротация и он стал нулевым? Ведь у меня в условии, если файл >20M, тогда он должен ротироваться.

/usr/local/mgr5/var/xmlinstall.log
{
        rotate 30
        size=20M
        missingok
        notifempty
        hourly
        compress
        olddir old_journals
        create 0644 root root
        sharedscripts
        postrotate
                 /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
        endscript
}
yatakoi
() автор топика
Ответ на: комментарий от anc

То есть, если будет такой вид

/usr/local/mgr5/var/xmlinstall.log
{
        rotate 30
        size=20M
        missingok
        notifempty
        compress
        olddir old_journals
        create 0644 root root
        sharedscripts
        postrotate
                 /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
        endscript
}

А в кроне такой

@hourly /usr/sbin/logrotate -f /etc/logrotate.d/my_logrotate

То будет как хотел выше?

yatakoi
() автор топика
Ответ на: комментарий от yatakoi

/usr/local/mgr5/var/*.log

Кто так делает? Как потом /usr в ro монтировать? Хотя бы /usr/local/mgr5/var/log/mgr5 сделал тогда –bind пойдет.

anonymous
()
Ответ на: комментарий от anonymous

/usr в ro монтировать

эх, хорошо там, где нет systemd и UsrMerge :(

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.