Как определить имя файла Apache Logrotation с помощью сценария внешней оболочки - PullRequest
0 голосов
/ 24 сентября 2010

У меня работает apache на разных серверах, я хотел бы ежедневно возвращать файлы журнала rsync на централизованный сервер.Я могу использовать log rotate для создания файла журнала за день и поместить его в каталог, который передает rsync'd на центральный сервер.Однако есть ли способ установить имя файла журнала с обозначением, которое можно прочитать из внешнего файла?

В документации сказано, что я могу сделать следующее, CustomLog "| / usr / sbin / rotatelogs -f / var/ log / httpd / log 86400 "common

У меня есть внешний файл конфигурации, в котором есть поле назначения, которое я могу проанализировать из командной строки, чтобы получить его значение, есть ли способ добавить его, когда имя файла получитопределены.Мне любопытно узнать, можно ли передать это обозначение в apache как переменную окружения и использовать его в конфигурации apache.Возможно ли это?

Большое спасибо, ребята!

1 Ответ

1 голос
/ 24 сентября 2010

Я думаю, что вы можете сделать это, настроив Apache и logrotate. Logrotate настраивается с помощью сценариев в каталоге /etc/logrotate.d/. Например, мой файл конфигурации apache logrotate по умолчанию: / и т.д. / logrotate.d / HTTPD

/var/log/httpd/*log {
    missingok
    notifempty
    sharedscripts
    postrotate
    /bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true
    endscript
}

Проверьте man-страницы logrotate для команды postrotate. На этапе постротации вы можете переименовать файл журнала и поместить его где-нибудь, чтобы его можно было найти в rsync.

...