News:

Ум заключается не только в знании, но и в умении прилагать знание на деле. Аристотель

Main Menu

Logrotate

Started by inkostin, 25 October 2017, 20:36

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

inkostin

Хочу ротейтить access.log squid, каждый месяц.
Store и cache каждый день.

Не получается.

В /etc/cron.dailym - есть файл logrotate
#!/bin/sh

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


/etc/crontab
00 0 * * * root run-parts /etc/cron.daily


/etc/logrotate.d/squid

/var/log/squid/access.log {
        monthly
        compress
        delaycompress
        rotate 3
        missingok
        nocreate
        sharedscripts
        prerotate
                test ! -x /usr/sbin/sarg-reports || /usr/sbin/sarg-reports monthly
        endscript
        postrotate
                test ! -e /var/run/squid.pid || test ! -x /usr/sbin/squid || /usr/sbin/squid -k rotate
        endscript
}

/var/log/squid/cache.log {
        daily
        nocompress
        delaycompress
        rotate 1
        missingok
        nocreate
        sharedscripts
        postrotate
                test ! -e /var/run/squid.pid || test ! -x /usr/sbin/squid || /usr/sbin/squid -k rotate
        endscript
}

/var/log/squid/store.log {
        daily
        rotate 1
        compress
        delaycompress
        missingok
        nocreate
        sharedscripts
        postrotate
                test ! -e /var/run/squid.pid || test ! -x /usr/sbin/squid || /usr/sbin/squid -k rotate
        endscript
}




Уваров А.С.

Что именно не получается?

inkostin

Quote from: Уваров А.С. on 26 October 2017, 09:56Что именно не получается?

Не ротейтит он каждый день: Store и cache!

И второй момент, когда он ротейтит логи squidguard, то там почему-то записи:
2017-10-25 19:06:26
2017-10-25 19:06:29
2017-10-25 19:09:31
-------------
А должны же быть с 0:00 26.10.2017

status:

"/var/log/squidguard/adv.log" 2017-10-26-0:0:0

inkostin

logrotate  -dv /etc/logrotate.d/squid

Handling 3 logs

rotating pattern: /var/log/squid/access.log  monthly (3 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/squid/access.log
  Now: 2017-10-26 11:20
  Last rotated at 2017-10-26 00:00
  log does not need rotating (log has been rotated at 2017-10-26 0:0, that is not month ago yet)
not running prerotate script, since no logs will be rotated
not running postrotate script, since no logs were rotated

rotating pattern: /var/log/squid/cache.log  after 1 days (1 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/squid/cache.log
  Now: 2017-10-26 11:20
  Last rotated at 2017-10-26 00:00
  log does not need rotating (log has been rotated at 2017-10-26 0:0, that is not day ago yet)
not running postrotate script, since no logs were rotated

rotating pattern: /var/log/squid/store.log  after 1 days (1 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/squid/store.log
  Now: 2017-10-26 11:20
  Last rotated at 2017-10-26 00:00
  log does not need rotating (log has been rotated at 2017-10-26 0:0, that is not day ago yet)
not running postrotate script, since no logs were rotated

Уваров А.С.

Давайте разбираться, как работает logrotate. Он делает удаляет текущий файл лога и делает его копию с отдельным именем, при этом может создаваться (и чаще всего создается) новый чистый файл лога. Затем служба перезапускается или включается ее собственный механизм ротации (либо не делается ничего, если служба умеет писать в новый файл налету).

Если ротировать нечего - то logrotate ничего делать не будет.

Для squid затем выполняется squid -k rotate, который использует настройки squid и производит собственную ротацию логов. По умолчанию он перезаписывает текущий файл лога.

Теперь о ваших настройках. Ротировать access.log раз в месяц - очень и очень спорное решение, так как именно этот файл наиболее интенсивно растет, если нужен лог за месяц, то проще хранить 31 ротацию за день.

cache.log нужен преимущественно при отладке, в рабочем режиме его рост невелик и особой проблемы с его ротацией не стоит.

store.log по умолчанию вообще выключен, практического интереса не представляет, разве что для отладки работы с кешем. Зачем он вам?