Назад | Перейти на главную страницу

Как я могу перенаправить старые журналы доступа в новое место назначения системного журнала (redhat)?

Я просто настраиваю пересылку системного журнала, но как мне пересылать старые исторические журналы (например, 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
    
  • Обратите внимание, что время события в системном журнале будет временем получения события, а не событием в журнале.