Рубрики
Linux

Резервирование файлов logrotate

Прочитано: 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
}



Материалы

Добавить комментарий

Ваш адрес email не будет опубликован.

четыре × 1 =