logrotate переименовывают файлы с датой

Очень много зависит от конкретной загрузки приложения, которую Вы используете. Некоторые серверы приложений (SunONE, старый материал netscape) пишут несколько сотен в несколько тысяч файлов к/tmp - в той ситуации, Вы действительно не хотите, чтобы это было смонтированным электронным диском, и нет никакой причины сохранить его между перезагрузками.

Серверы становятся менее общим и более особым назначением - этот тип вопроса (и подобное, "как я делю свою систему" вопрос), действительно зависит от Вашего loadout.

У меня действительно недавно был один сервер, который был перезагружен впервые приблизительно после 4 лет - он застрял на полпути посредством начальной загрузки, удалив все файлы в/tmp - было так много хлама там, что потребовался хороший час для чистки его. Определенно хорошая идея периодически чистить его, если Ваше поле не перезагружает очень часто.

7
задан 16 July 2009 в 03:40
3 ответа

В /etc/logrotate.conf или /etc/logrotate.d/lighttpd, или надлежащий файл если вообще где-нибудь еще, добавляют dateext к строке файла конфигурации Вы хотите применить суффиксы даты.

Больше информации из logrotate страницы справочника:

dateext

Заархивируйте старые версии файлов журнала, добавляющих ежедневное расширение как YYYYMMDD вместо того, чтобы просто добавить число.

14
ответ дан 2 December 2019 в 23:21
  • 1
    В то время как другие ответы могут также привести к результатам, мне нужно, этот является самым простым. Даже при том, что это не обеспечивает то же точное имя файла, которого я первоначально требовал, это действительно выполняет задачу, в которой я нуждался.Спасибо. –  Krystian Cybulski 16 July 2009 в 08:17

Используйте cronolog - он запишет файлы журнала с корректными именами файлов во-первых (например, у Меня обычно есть свои веб-серверы, пишут файлы журнала как YYYY/MM/DD/access, или YYYY/MM/DD/error, и т.д). Больше деталей о конфигурировании cronolog с lighttpd здесь: http://redmine.lighttpd.net/projects/1/wiki/MigratingFromApache

(в то время как та страница упоминает, что server.errorlog не может пробежаться cronolog, кажется, существует отчет об ошибках для этого, которое было отмечено, как "зафиксировано" - к сожалению, я не могу отправить больше чем один URL за один раз, так как я - "новый" пользователь на serverfault...),

2
ответ дан 2 December 2019 в 23:21
  • 1
    Круто. Мы используем cronolog на апаче, но мне didn' t думают, что это работало над lighttpd. –  theotherreceive 16 July 2009 в 03:56

Я не думаю, что lighttpd или logrotate могут сделать это собой. Я вижу две опции достигнуть этого:

Сделайте свои собственные сценарии непосредственно после logrotate, как в конце он - cronjob. Что-то как:

if [ -f /var/log/lighttpd/access.log.1.gz ]; then`
    mv /var/log/lighttpd/access.log.1.gz /var/log/lighttpd/access.log.$date.gz
fi

Или, системный-журнал-ng может создать файлы журнала по дате, и lighttpd может отправить журналы в системный журнал вместо того, чтобы писать им сам.

# syslog-ng.conf
destination df_lighttpd { file("/var/log/lighttpd/$YEAR$MONTH$DAY.log"); };
filter f_lighttpd { program("lighttpd"); };
log { source(s_all);  filter(f_lighttpd); destination(df_lighttpd); };

и набор accesslog.use-syslog & server.errorlog-use-syslog на lighttpd конференции


Править: Cronolog более прост и/или, чем любое из моих предложений, я пошел бы с этим, если он работает на Вас.

0
ответ дан 2 December 2019 в 23:21

Теги

Похожие вопросы