2013-11-26 7 views
1

В Ubuntu 12.10, добавил следующую запись '' /etc/logrotate.d путь:Ubuntu 12,10 Logrotate вопрос

# cat /etc/logrotate.d/tsdb 
/home/logs/*dat { 
     daily 
     rotate 30 
     compress 
     missingok 
     notifempty 
     create 0664 nagios nagios 
} 

Ниже, как файл '/etc/cron.daily/logrotate' выглядит :

# cat /etc/cron.daily/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.conf 

Я ожидал, что журналы будут вращаться, но я не вижу, чтобы они вращались. Что может быть, что я делаю неправильно здесь?

Файл состояния действительно показывает, что Logrotate побежал на файлах в вопросе, но я не вижу никаких повернутых журналов:

# cat /var/lib/logrotate/status 
logrotate state -- version 2 
"/home/logs/service-perfdata.dat" 2013-11-26 
"/home/logs/host-perfdata.dat" 2013-11-26 

Кроме того, вот как файл «/etc/logrotate.conf» выглядит следующим образом:

# cat /etc/logrotate.conf 
# see "man logrotate" for details 
# rotate log files weekly 
weekly 

# keep 4 weeks worth of backlogs 
rotate 4 

# create new (empty) log files after rotating old ones 
create 

# uncomment this if you want your log files compressed 
#compress 

# packages drop log rotation information into this directory 
include /etc/logrotate.d 

# no packages own wtmp, or btmp -- we'll rotate them here 
/var/log/wtmp { 
    missingok 
    monthly 
    create 0664 root utmp 
    rotate 1 
} 

/var/log/btmp { 
    missingok 
    monthly 
    create 0660 root utmp 
    rotate 1 
} 

# system-specific logs may be configured here 

Вот результат ручного запуска LogRotate:

# /usr/sbin/logrotate -vd /etc/logrotate.conf 

rotating pattern: /home/logs/*dat after 1 days (30 rotations) 
empty log files are not rotated, old logs are removed 
considering log /home/logs/host-perfdata.dat 
    log does not need rotating 
considering log /home/logs/service-perfdata.dat 
    log does not need rotating 

ответ

0

Путь logrotate ручки лог-файлы на начальном этапе, не является интуитивно понятным:

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

В вашем случае вы видели, что он проверял файлы, о которых идет речь, и написал строку состояния для каждого при первом запуске. Любые последующие прогоны будут использовать дату в этой строке и сравнить ее с датами файла журнала, чтобы увидеть, следует ли ее вращать. Я подозреваю, что ваши файлы были датированы 26 ноября, и он был отмечен 26 ноября, поэтому им не нужно было вращаться. Либо задняя часть ваших файлов журналов, либо задняя часть записи в файле состояния заставит его повернуть файлы для вас.

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

+0

спасибо Gerrat, этот ответ определенно помогает моему пониманию logrotate. –

Смежные вопросы