logrotate

logrotate(8)                    Ротація журналів                    logrotate(8)



ІМ'Я
       logrotate - циклічно переміщує, архівує та посилає електронною почтою
       системні журнали.


ВИКОРИСТАННЯ
               logrotate [-dv] [-f|--force] [-s|--state file] config_file+



ОПИС
       logrotate розроблений для полегшення адміністрування систем, що ведуть
       велику кількість журналів. Він також забезпечує ротацію, архівацію,
       видалення та відправку журналів електронною почтою. Кожний журнал може
       переміщатись щоденно, потижнево чи щомісячно, або при досягненні ним
       певного розміру.


       Звично logrotate запускають щоденно з допомогою cron.  Це не значить що
       він буде модифікувати журнали кілька раз в день хіба, що критерій розміру
       журналу на якому засновується циклічна заміна журналів буде виконуватись
       і logrotate запускатиметься кілька разів на день, або з опцією -f, або
       -force для примусової циклічної заміни журналів.


       Будь-яке число файлів з налаштуваннями можна вказати в командній стрічці.
       Файли вказані пізніше змінюють опції вказані у попередніх файлах, так, що
       порядок конфіґураційних файлів у logrotate є важливий. Зазвичай
       використовується єдиний конфіґураційний файл, котрий включає будь-які
       інші необхідні файли з налаштуваннями. Нижче описано, як це робиться з
       допомогою  директиви include. Якщо в командній стрічці вказано директорію
       то кожний файл з цієї директорії використовується, як файл налаштувань.


       Якщо не вказано ніяких параметрів у командній стрічці logrotate видрукує
       версію і авторські права та коротеньку інформацію по використанню і
       закінчить роботу. При появі будь-яких помилок під час виконання logrotate
       припинить роботу з не нульовим статусом.


ОПЦІЇ
       -d     Вмикає відлагоджувальний режим і додає -v. У відлагоджувальному
              режимі ніяких змін з файлами журналів чи файлу стану logrotate.


       -f, --force
              Вказує  logrotate насильно проводити циклічну заміну журналів,
              навіть, коли нема в цьому необхідності. Деколи це корисно після
              додавання нового пункту в logrotate, чи для створення нових файлів
              журналів, коли старі файли журналів були переміщені вручну, щоб
              протоколювання могло продовжуватись далі коректно.


       -m, --mail <command>
              Вказує logrotate яку команду використовувати для пересилки
              журналів електронною почтою. Ця команда повинна приймати два
              параметри 1) тему повідомлення, і 2) адрес отримувача. Далі
              команда повинна зчитати повідомлення з стандартного вводу і
              відіслати адресату. По замовленню використовується /bin/mail -s.


       -s, --state <statefile>
              Вказує logrotate використовувати альтернативний файл статусу. Це
              корисно коли ротація стартує під різними користувачами для різних
              файлів стану. По замовчуванню використовується
              /var/lib/logrotate.status.


       --usage
              Виводить коротке повідомлення що до використання.


ФАЙЛ НАЛАШТУВАНЬ
       logrotate зчитує всі вказівки що до дій з журналами з серії файлів
       налаштування вказаних в командній стрічці. Кожний файл може визначати
       глобальні опції ( місцеві визначення змінюють глобальні і визначення
       вказані пізніше змінюють ті що були перед ними) і файли журналів для
       циклічного переміщення.  Простий файл з налаштуваннями виглядає так:

               $ cat /etc/logrotate.conf
               # sample logrotate configuration file
               compress

               /var/log/messages {
               rotate 5
               weekly
               postrotate
                   /etc/init.d/syslog-ng reload
               endscript
               }

               "/var/log/httpd/access.log" /var/log/httpd/error.log {
               rotate 5
               mail www@my.org
               size=100k
               sharedscripts
               postrotate
                    /sbin/killall -HUP httpd
               endscript
               }

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

               $ cat /etc/logrotate.d/news
               /var/log/news/* {
               monthly
               rotate 2
               olddir /var/log/news/old
               missingok
               postrotate
                     kill -HUP `cat /var/run/inn.pid`
               endscript
               nocompress
               }

       Перші декілька стрічок визначають глобальні опції, наприклад архівацію
       журналів після їх циклічної перестановки. Коментарі можна вставляти
       будь-де у файлі налаштувань, але перша стрічка коментаря повинна
       починатись з символу #.

       Наступна секція конфігураційного файлу визначає які дії потрібно зробити
       з журналом /var/log/messages. Журнали будуть циклічно переміщуватись
       п'ять тижнів перед тим як витруться. Після циклічного переміщення (але
       перед тим як стара версія журналу почне архівуватися), виконається
       команда  /etc/init.d/syslog-ng reload (/sbin/killall -HUP syslogd).

       Слідуюча секція визначає параметри для двох журналів
       /var/log/httpd/access.log та /var/log/httpd/error.log.  Вони циклічно
       переміщуються як тільки розмір журналу стає більшим 100k і старий журнал,
       після 5 циклічних зсувів, не архівований, перед своїм видаленням,
       пересилається на адресу www@my.org. sharedscripts означає що скрипт після
       зсуву postrotate буде запущений тільки один раз, а не по разу для кожного
       журналу що проходить ротацію. Увага, лапки навколо першого імені файлу
       дозволяють logrotate працювати з іменами файлів журналів, що містять
       пробіли. Звично командна оболонка використовує лапки ', ", і символ \ .

       Директива include /etc/logrotate.d приводить до зчитування всіх файлів,
       як конфіґураційних, з директорії /etc/logrotate.d

       Файл /etc/logrotate.d/news визначає параметри для всіх файлів в
       /var/log/news. Кожний файл циклічно зсувається з місячним періодом. Це
       вважається як єдина директива для ротації і якщо помилки будуть більш ніж
       для одного файлу, то журнали не архівуватимуться.

       Будь-ласка використовуйте * з обережністю. якщо вкажете * logrotate буде
       циклічно зсувати кожний файл включаючи попередньо вже зсунуті та
       заархівовані. Шлях обійти це полягає у використанні директиви olddir чи
       більш точною вказівкою *.log

       Далі наведемо більше інформації про директиви що можуть використовуватись
       в файлах налаштувань logrotate:


       compress
              Стара версія журналу архівується по-замовчуванню програмою gzip.
              Також дивіться nocompress.


       compresscmd
              Вказує котру команду використовувати для архівації журналів. По
              замовчуванню gzip. Також дивіться директиву compress.


       uncompresscmd
              Вказує яку команду використовувати для роз-архівації журналів. По
              замовчуванню gunzip.


       compressext
              Вказує закінчення яке додається до архівованого журналу, якщо
              архівація включена. По-замовчуванню використовується закінчення
              (розширення) архіватора.


       compressoptions
              Командна стрічка що передається архіватору, якщо він
              використовується. По-замовчуванню для gzip, є "-9" (максимальне
              стискання).


       copy   Робить копію журналу, але не змінює зовсім вхідний. Цю опцію
              використовують наприклад для отримання копії поточних журналів, чи
              коли якась стороння утиліта потребує урізати чи обрізувати журнал.
              Коли використовується copy то опція create не дає ніякого ефекту,
              так, як старий файл залишається на місці.


       copytruncate
              Врізає оригінальний файл журналу на місці після створення копії,
              замість переміщення старого файлу журналу і можливого створення
              нового. Її використовують коли деякій програмі неможливо сказати
              закрити попередній журнал і отже вона мусить продовжувати писати
              (додавати) до попереднього журналу. Увага між копіюванням файлу
              журналу та урізанням його існує маленький проміжок часу, так що
              деякі дані можуть пропасти. Коли використовується ця опція то
              create не дає ніякого ефекту, так, як старий файл залишається на
              місці.


       create mode owner group
              Негайно після ротації (перед запуском післяротаційного скрипта
              postrotate) створюється новий журнал (з тим самим іменем, як і у
              файлу журналу, що тільки зсунувся). mode вказує права допуску в
              вісімковій системі (так як у chmod(2), owner вказує власника
              журналу, а group вказує групу до якої належить журнал. Будь-які
              файлові атрибути можна пропустити у цьому випадку в новому файлі
              будуть ті ж атрибути як і в старого журналу, для пропущених
              атрибутів. Цю опцію відміняє nocreate.


       daily  Журнали циклічно переміщуються щодня.


       delaycompress
              Відтерміновує компресію попереднього журналу до наступного циклу
              ротації. Ця опція має ефект тільки в комбінації з compress. Вона
              може використовуватись коли деякій програмі не можливо вказати
              закрити свій журнал і тому вона мусить продовжувати писати ще
              деякий час в попередній журнал.


       extension ext
              Суфікс журналу що додається до старих журналів після ротації. Якщо
              використовується архівування, то закінчення архіву (звично .gz)
              додається останнім.


       ifempty
              Вказує циклічно переміщувати пусті журнали, змінює цю поведінку
              опція notifempty (по-замовчуванню використовується ifempty).


       include file_or_directory
              Зчитує файл як параметр там де появляється директива include, так
              ніби він був включений в командну стрічку. Якщо вказана
              директорія, більшість файлів з директорії зчитуються в алфавітному
              порядку перед тим як продовжиться виконання інструкцій з файлу в
              котрому міститься include. Ігноруються тільки не регулярні файли
              (тобто директорії та посилання) і файли чиї імена закінчуються на
              одне з заборонених закінчень, які вказані директивою tabooext.
              Директива include не повинна появлятись в середині самого
              визначення журналу.


       mail address
              Коли циклічне зсування доходить до кінця, то останній журнал перед
              видаленням відправляється на вказану адресу. Коли не потрібно
              робити відправку журналу то вказується директива nomail.


       mailfirst
              Коли використовується команда mail, то відсилається щойно циклічно
              переміщений файл замість останнього, що видаляється.


       maillast
              Коли використовується команда mail, то відсилається останній файл,
              що видаляється замість того, що щойно циклічно зсунувся (це
              поведінка по замовчуванню).


       missingok
              Якщо файлу журналу не існує то програма, замість видачі помилки,
              переходить до наступного. Також дивіться nomissingok.


       monthly
              Журнали циклічно зсуваються коли logrotate запускається перший раз
              в місяці (звично це першого числа місяця).


       nocompress
              Старі журнали не архівуються gzip. Також дивіться compress.


       nocopy Не копіювати оригінальний файл журналу і залишити його на місці
              (змінює опцію copy).


       nocopytruncate
              Не урізувати оригінальний файл журналу після створення його копії
              (це змінює опцію copytruncate).


       nocreate
              Не створюється новий файл після ротації (змінюється опцією
              create).


       nodelaycompress
              Не відтерміновувати архівацію попередньо зсунутого файлу до
              наступного циклу (поведінка змінюється опцією delaycompress).


       nomail Не відсилати нікому старий журнал.


       nomissingok
              Якщо файл журналів не існує, видає помилку. Ця поведінка є по
              замовчуванню.


       noolddir
              Старі журнали циклічно зсуваються в одній і тій ж директорії, що і
              сам журнал (це змінюється опцією olddir).


       nosharedscripts
              Запускає перед ротаційний prerotate та після ротаційні postrotate
              скрипти для кожного журналу котрий циклічно зсувається (це
              поведінка по-замовчуванню, яка змінюється опцією sharedscripts).


       notifempty
              Не зсувати циклічно пусті журнали (це змінює опцію ifempty).


       olddir directory
              Старі журнали переміщаються в директорію для ротації. Директорія
              мусить бути на тому самому фізичному пристрої що й журнали. Коли
              використовується ця опція всі старі версії журналів знаходяться в
              цій директорії. Опцію можна змінити noolddir.


       postrotate/endscript
              Стрічки між postrotate і endscript (обидві з мусять бути в окремій
              стрічці) виконуються після ротації журналів. Ця директива може
              тільки появлятись в середені визначення журналу. також дивіться
              prerotate.


       prerotate/endscript
              Стрічки між prerotate і endscript (обидві з мусять бути в окремій
              стрічці) виконуються перед ротацією журналів. Ця директива може
              тільки появлятись в середені визначення журналу. Також дивіться
              postrotate.


       rotate count
              Журнал циклічно зсувається <count> разів перед видаленням чи
              відправкою почтою на адрес вказаний у директиві mail. Якщо count
              рівне 0, стара версія журналу видаляється і ротація не
              відбувається.


       size size
              Журнал циклічно зсувається коли він стає більшим за size в байтах.
              Якщо вкінці є M, то розмір рахується в мегабайтах. Якщо стоїть k,
              то розмір рахується в кілобайтах. Так допустимими є значення 100,
              100k, і 100M.


       sharedscripts
              Звично prescript і postscript запускаються для кожного журналу,
              який циклічно зсувається, що означає запуск одного і тогож скрипта
              знову для кожного журналу що відповідає умові (наприклад
              /var/log/news/*.log). Якщо вказано опцію sharedscript скрипт
              запускається тільки раз, байдуже скільки журналів задовольняють
              умові. Однак якщо ні один журнал не потребує ротації скрипт не
              запускається взагалі. Цю опцію змінює nosharedscripts.


       start count
              Вказує номер з якого починати рахувати ротації. Наприклад якщо
              вкажете 0, старі журнали будуть створюватись з суфіксом .0 який
              додасться до назви первинного журналу. Якщо вкажете 9 то архів
              журналів будуть з суфіксами, що почнуться з .9, а 0-8
              пропустяться. Журнал все одно буде зсуватись визначену опцією
              count кількість разів.


       tabooext [+] list
              Змінює поточний список заборонених розширень ( дивіться директиву
              include де є інформація про заборонені розширення). Якщо стоїть +
              перед списком розширень то поточний список поповнюється, інакше
              заміняється. При старті список заборонених розширень містить:
              .rpmorig, .rpmsave, ,v, .swp, .rpmnew, та ~.


       weekly Журнал циклічно зсувається, якщо поточний день тижня менший ніж
              день тижня коли відбувалась остання ротація, або коли пройшло
              більш ніж тиждень з часу останньої ротації. Тобто журнали циклічно
              зсуваються в перший день тижня, але працює краще коли logrotate
              запускається не кожної ночі.


ФАЙЛИ
       /var/lib/logrotate.status   Файл статусу по-замовчуванню.


       /etc/logrotate.conf         Файл з налаштуваннями.


       /etc/logrotate.d            Директорія з файлами налаштувань.


ПОДІБНІ ТЕМИ
       Syslog-ng - записувач подій в UNIX, gzip(1).


АВТОРИ
       Ерік Троян (Erik Troan) <ewt@redhat.com>


       Престон Бравн (Preston Brown) <pbrown@redhat.com>




© 2005-2007 DLOU,vG3.6.5Lпереклад: бета версія 2007-10-27-16:31     logrotate(8)