Назад | Перейти на главную страницу

logrotate не удаляет старые файлы - сбой glob

Я в тупике с этим. Любая помощь высоко ценится...!

Журналы в / var / log / HOSTS / cacheflow_access_log / настроены для архивирования в / var / log / HOSTS / archived / cacheflow_access_log / и сжатия. Это довольно большие файлы, поэтому их следует хранить не более 1 дня, чтобы Splunk или Sawmill могли обобщить их содержимое.

Журналы вращаются и сжимаются без проблем, но старые сжатые журналы не удаляются. Подробный вывод logrotate предполагает, что это проблема с glob. Это смотрит в жить каталог, а не архив каталог? Если да, то как я могу это исправить? Если нет, то что это происходит ?!

Logrotate conf:

# logrotate configuration for syslog files

# global options
   rotate 1
   missingok
   daily
   compress
   ifempty
   dateformat -%Y%m%d
   dateext

---SNIP---

/var/log/HOSTS/cacheflow_access_log/* {
   daily
   # only keep 1 day of cacheflow as they're massive files
   maxage 1
   rotate 1
   olddir /var/log/HOSTS/archived/cacheflow_access_log
   postrotate
      invoke-rc.d proftpd restart 2>/dev/null >/dev/null || true
   endscript
}

Подробный вывод Logrotate:

considering log /var/log/HOSTS/cacheflow_access_log/CF_5000_20120803_092129.log
log needs rotating
rotating log /var/log/HOSTS/cacheflow_access_log/CF_5000_20120802_120326.log, log >rotateCount is 1
Converted ' -%Y%m%d' -> '-%Y%m%d'
dateext suffix '-20120803'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
glob finding old rotated logs failed
renaming /var/log/HOSTS/cacheflow_access_log/CF_5000_20120802_120326.log to /var/log/HOSTS/archived/cacheflow_access_log/CF_5000_20120802_120326.log-20120803
running postrotate script

Запуск Debian Squeeze 2.6.32-5-686-bigmem

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

Спасибо!

Возможно, это происходит из-за того, что в файле журнала уже есть дата в имени, и поэтому это новое имя каждый день. Обычно я вижу файлы журнала со статическим именем, а logrotate добавляет расширение, чтобы сделать их уникальными. logrotate может искать старые файлы в каталоге архива с именем CF_5000_20120802_120326.log, чтобы удалить их. Он не находит ничего, потому что базовое имя каждого файла уникально.