Чтобы не забивать журналы
бесполезной информацией, ограничивая объем разумными пределами, необходимо регулярно
проводить ротацию. Регулярная очистка журналов от устаревшей информации позволяет
сэкономить место на диске.
Простейшая стратегия ротации
журналов состоит в их удалении при запуске демона syslogd и создании новых,
чистых журналов. Например, ввод следующих команд
#
rm /var/log/messages
# kill -HUP
`cat /var/run/syalogd.pid
приводит к удалению файла
/var/ log/messages и созданию нового при перезапуске sys logd. Подобная стратегия
хорошо работает только в однопользовательских и домашних системах, где нет большой
надобности в хранении старых журналов. Что касается многопользовательских серверов,
то здесь историческая информация имеет особую ценность, особенно при отслеживании
возможных нарушений безопасности. В этом случае удобна иная стратегия ротации
- сохранение одного поколения журналов, при котором при запуске syslogd журналы
не удаляются, а переименовываются.
#
mv
/var/log/messages /var/log/messages.1
#
kill
-HUP `cat /var/run/syslogd.pid"
Если требуется сохранить
два поколения журналов, то журналам первого поколения присваиваются имена журналов
второго, а текущие журналы переименовываются в журналы первого поколения.
#
mv /var/log/messages.1 /var/log/messages.2
# mv /var/log/messages
/var/log/messages.1
#
kill
-HUP
`
cat /var/run/syslogd.pid'
Эту
процедуру следует
автоматизировать, выполняя ее, к примеру, еженедельно в установленное время.
Для этого надо написать сценарий процедуры ротации. На сервере Linux Red Hat
7.1 при сохранении одного поколения журналов сценарий будет выглядеть примерно
так:
#!/bin/sh
mv /var/log/messages /var/log/messages.1
mv /var/log/secure /var/log/secure. 1
mv /var/log/maillog /var/log/maillog.1
mv /var/log/spooler
/var/log/spooler.1 kill -HUP `
cat /var/run/syslogd.pid'
Файл сценария (например,
/usr/local/bin/newlogs) создается в текстовом редакторе, затем преобразуется
в выполняемый файл.
# chmod
755
/usr/local/bin/newlogs
Далее, требуется внести
соответствующую запись в файл crontab, воспользовавшись одним из двух методов,
описанных ранее. Запись для запуска сценария каждое воскресное утро в 12.01
имеет следующий вид:
1
12 * * sun /usr/local/bin/newlogs
Примечание
В Red Hat Linux 7.1 ротационный процесс автоматизирован с помощью файла /etc/logro-tate. conf. Первые две команды этого файла выполняют ротацию журналов каждую неделю с использованием четырех недельных журналов. Например, вы можете располагать пятью журналами: /var/log/messages И С /var/log/messages . 1 ПО /var/log/messages . 4.