Собираю логи с удаленных хостов с помощью rsyslog и укладываю их по шаблону:
/var/log/hosts/%FROMHOST%/%$YEAR%/%$MONTH%/syslog.logНастроил logrotate
/var/log/hosts/*/*/*/syslog.log
{
daily
rotate 32
compress
compresscmd /usr/bin/bzip2
compressext .bz2
delaycompress
missingok
nocreate
notifempty
postrotate
/usr/local/etc/rc.d/rsyslogd restart >/dev/null 2>&1
endscript
}какое-то время работало все отлично, а сейчас не видит каталогов входящих в шаблон
rotating pattern: /var/log/hosts/*/*/*/syslog.log
forced from command line (32 rotations)
empty log files are not rotated, old logs are removedесли например конкретизировать путь, то срабатывает
rotating pattern: /var/log/hosts/*/2012/*/syslog.log
forced from command line (1 rotations)
empty log files are not rotated, old logs are removed
considering log /var/log/hosts/10.10.10.10/syslog.log
log needs rotating
А почему именно 3 звезды используется?почему не /var/log/hosts/*/syslog.log ?
> А почему именно 3 звезды используется?
> почему не /var/log/hosts/*/syslog.log ?Изначально я так и сделал, но оно не заработало, подобная же ошибка была,
а с */*/* завелось и месяц работало, и вот я решил добавить другие журналы на обработку у них кстати тоже шаблонный путь, они заработали, а 3 звезды перестали работать, откатывался к начальному виду конфига все равно не раскрывает путьпроверил еще раз - с одной звездой не работает
rotating pattern: /var/log/hosts/*/*/*/syslog.log
forced from command line (32 rotations)
Значит 32 файла было найдено по шаблону
empty log files are not rotated, old logs are removed
Скорее всего не смог доч=ступиться до этих файлов из-за разрешений на них
Проверяйте под кем запускается logrotate и какие разрешения на /var/log/hosts/*/*/*/syslog.log и на сами каталоги /var/log/hosts/*/*/*/
> rotating pattern: /var/log/hosts/*/*/*/syslog.log
> forced from command line (32 rotations)
> Значит 32 файла было найдено по шаблонуТут Вы не правы, 32 это заданное количество архивных файлов
> empty log files are not rotated, old logs are removed
> Скорее всего не смог доч=ступиться до этих файлов из-за разрешений на них
> Проверяйте под кем запускается logrotate и какие разрешения на /var/log/hosts/*/*/*/syslog.log
> и на сами каталоги /var/log/hosts/*/*/*/Допустим, а почему тогда при более конкретном пути все работает:
/var/log/hosts/*/2012/*/ если указать путь так, то работаетКстати а других инструментов нет для ротации логов? Хорошоб чтоб можно было имя файла менять и укладывать по заданому пути, хотя наверно проще свой скрипт написать
да что-то я набрехал тут.Покажи вывод
#logrotate -v <твой конфиг с этим шаблоном>
удалил
logrotate -v /usr/local/etc/logrotate.conf
reading config file /usr/local/etc/logrotate.conf
including /usr/local/etc/logrotate.d
reading config file hostslog
reading config info for /var/log/hosts/*/*/*/syslog.logcompress_prog is now /usr/bin/bzip2
compress_ext is now .bz2
reading config file curhostslog
reading config info for /var/log/hosts/*/cur.log
Handling 2 logsrotating pattern: /var/log/hosts/*/*/*/syslog.log
after 1 days (32 rotations)
empty log files are not rotated, old logs are removedrotating pattern: /var/log/hosts/*/cur.log
after 1 days (1 rotations)
empty log files are not rotated, old logs are removed
considering log /var/log/hosts/10.50.3.132/cur.log
log does not need rotating
considering log /var/log/hosts/10.50.3.164/cur.log
log does not need rotating
considering log /var/log/hosts/10.50.3.50/cur.log
log does not need rotating
considering log /var/log/hosts/10.50.3.52/cur.log
log does not need rotating
considering log /var/log/hosts/10.50.5.1/cur.log
log does not need rotating
considering log /var/log/hosts/10.62.0.33/cur.log
log does not need rotating
not running postrotate script, since no logs were rotated
not running postrotate script, since no logs were rotated
not running postrotate script, since no logs were rotated
not running postrotate script, since no logs were rotated
not running postrotate script, since no logs were rotated
not running postrotate script, since no logs were rotated