Я просто настраиваю пересылку системного журнала, но как мне пересылать старые исторические журналы (например, access_log)? Можно ли воспроизвести файлы журнала, чтобы они отправляли исторические записи?
У команды logger есть опция '-f', которая позволяет вам указать имя файла. '-n' позволяет указать удаленный сервер для отправки.
Вы можете передать любой текстовый файл в системный журнал через logger
. Это будет следовать любому методу потоковой передачи, который вы указали в syslog.conf
, поэтому перед этим убедитесь, что в вашем файле syslog.conf указан сервер системного журнала.
cat access_log | logger -t access_log_old
Это возьмет access_log, прочитает его построчно и просто отправит всю строку на ваш сервер системного журнала с тегом access_log_old. Некоторые предостережения:
Каждая строка будет включать поле даты в начале access_log, что может быть не тем, что вам нужно. Ты можешь использовать sed
или awk
чтобы удалить поле даты из каждой строки. Что-то вроде этого могло бы работать:
cat access_log | sed 's/MATCH//g' | logger -t access_log
Обратите внимание, что время события в системном журнале будет временем получения события, а не событием в журнале.