Perl для системного администрирования

       

Способ ротации журналов из Perl



Таблица 9.2. Способ ротации журналов из Perl



Процесс Perl
Переименуйте старые журналы, присвоив им следующий номер. renamed или &File: :Copy: :move() если переносить файлы с одной файловой системы на другую.
Если необходимо, сообщите процессу, создающему файл журнала, о необходимости закрыть текущий файл и приостановить запись до тех пор, пока она не будет разрешена. kill () для программ, принимающих сигналы, system () или (обратные кавычки), если необходимо вызвать для этого другую программу.
Скопируйте или переместите файлы журналов, которые сейчас использовались, в другой файл. &File: : Сору для копирования, rename( ), чтобы переименовать (или &File: :Copy: :move() при перемещении с одной файловой системы на другую).
Если необходимо, урежьте текущий файл журнала. truncate () или open (FILE, "> filename").
Если необходимо, пошлите сигнал процессу о необходимости приостановить запись в журнал. Шаг 2 из этой таблицы.
При желании сожмите или обработайте скопированный файл. system( ) или обратные кавычки для запуска программы сжатия или другого программного кода, выполняющего обработку.
Удалите самые старые копии файлов. stat( ), чтобы выяснить размер файла и даты, unlink( ) для удаления файлов.

На эту тему существует много вариаций. Все, кому не лень, писали собственные сценарии для ротации журналов. Так что не удивительно, что такой модуль существует. Рассмотрим модуль Logf lie: .Rotate Пола Гэмпа (Paul Gampe).

Logfile: : Rotate использует объектно-ориентированный подход для создания нового экземпляра объекта для журнала и для выполнения методов этого экземпляра. Сначала мы создаем новый экземпляр с заданными параметрами (табл. 9.3).



Содержание раздела