Прочитано: 146
Конфигурационный файл /etc/logrotate.conf
В файле подключается директория
include /etc/logrotate.d
В директории располагаются файлы с описанием правил ротации для лог-файлов.
Параметры запуска
-d | debug — отладочный режим, не производит изменения. |
-f [—force] | произвести ротацию |
-m <команда> [—mail <команда>] | команда (тема сообщения и адрес получателя) для отправки почтой |
-s <файл> [—state <файл>] | записать файл состояния |
—usage | вывод краткой инструкции по использованию утилиты |
-v [—verbose] | вывод диагностических сообщений во время ротации |
Для тестирования стоит выполнить команду, при этом никаких изменений производиться не будет
logrotate -d /etc/logrotate.d/domen.ru
Следующая команда произведёт ротацию логов с выводом сообщений
logrotate -v -f /etc/logrotate.d/domen.ru
Правила ротации
Параметр | Описание |
---|---|
rotate <число> | Количество ротаций |
<daily|weekly|monthly> | Выполнять ротацию раз в день/неделю/месяц |
size <размер>[G|M|k] | Производить ротацию, если log-файл превысил указанный размер |
start <число> | Начало нумерации файлов |
compress | Архивировать файлы (по умолчанию gzip) |
nocompress | Отключить compress |
delaycompress | Пауза до сжатия нового файл. Используется с compress |
create <права><владелец><группа> create 640 root root | После ротации создать пустой log-файл. Любые из этих атрибутов могут быть опущены, в этом случае вместо них для нового файла будут использованы атрибуты, имеющие те же значения, что и первоначальный log-файл |
nocreate | Не создавать файл |
copy | Создать копию оригинального log-файла, не изменяя его. Исключает create |
nocopy | Отключить copy |
copytruncate | Создать копию оригинального log-файла, а потом его ‘обнулить’. Таким образом сам файл не удаляется. Исключает copy, create |
ifempty | Архивировать пустой файл (используется по умолчанию) |
notifempty | Не архивировать пустые файлы |
missingok | В случае отсутствия оригинального log-файла не вызовет ошибку |
nomissingok | В случае отсутствия оригинального log-файла вызовет ошибку |
postrotate <команды> endscript | Строки, находящиеся между postrotate и endscript будут выполнены как sh-скрипт после архивирования log-файла |
prerotate <команды> endscript | Аналогично postrotate, только действия будут выполнены до начала архивирования |
sharedscripts | Скрипты postrotate и prerotate будут выполнены только один раз в рамках своей секции. |
nosharedscripts | Отключает sharedscripts. Скрипты будут выполнятся при ротации каждого log-файла |
firstaction <команды> endscript | Команды выполняются однажды перед ротацией всех файлов журналов, совпадающих с шаблоном, перед запуском сценария prerotate и только если по меньшей мере один журнал действительно будет ротирован. Эти директивы могут встречаться только внутри определения файла журнала. |
lastaction <команды> endscript | Команды выполняются однажды после того, как все файлы журналов, совпадающие с шаблоном, были ротированы, после запуска сценария postrotate и только если хотя бы один журнал был ротирован. Эти директивы могут встречаться только внутри определения файла журнала. |
olddir <каталог> olddir /home/logs | Перемещать архивные файлы в указанную директорию |
noolddir | Отключает olddir |
dateext | К имени файлов журналов добавляется дата (%Y%m%d), вместо номера |
su | Выполняется с правами указанного пользователя. При ошибке: «because parent directory has insecure permissions», когда на директорию с логами есть право на запись только у root’a |
Пример
/home/user1/www/*.tar.gz {weekly
missingok
rotate 5
lastaction to_dir=/home/user1/www
# создание резервной копии базы данных
filename_db=$to_dir/mysql_db
mysqldump -uroot -pdb_password -B db1 db2 > $filename_db
chmod 660 $filename_db
chown user1:www-data $filename_db
tar -czf $filename_db.tar.gz $filename_db # архивирование файла базы данных
chmod 660 $filename_db.tar.gz
chown user1:www-data $filename_db.tar.gz
rm $filename_db # удаление первоначального файла
# создание резервной копии сайта
filename_s=$to_dir/domen.ru
tar -czf $filename_s.tar.gz $filename_s
chmod 660 $filename_s.tar.gz
chown user1:www-data $filename_s.tar.gz endscript}
Материалы