У меня есть приложение, работающее удаленно на сервере * NIX поставщика. Это приложение записывает записи журнала в файл. Этот процесс регистрации очень типичный подход, основанный только на добавлении, поэтому размер файла только увеличивается, а после записи содержимого его невозможно изменить.

Я хотел бы перенести эти записи журнала на мой локальный сервер * NIX в моей собственной сети в режиме реального времени (ish), чтобы файл журнала мог быть привязан к моим собственным локальным пользователям.

Учитывая природу файла журнала только для добавления, можно предположить, что довольно просто отслеживать дельту при добавлении новых строк (байтов), и изменять только по мере роста файла журнала.

Я надеялся на некоторое вдохновение относительно доступных инструментов для выполнения этой задачи ....?

Я был бы счастлив вытащить файлы через ssh, что, я полагаю, будет предварительным требованием. SFTP - еще одна доступная альтернатива, если она полезна для приложений.

2 ответа2

0

В дополнение к предложениям Кристиана, rsync кажется приемлемым вариантом ... но он требует планирования (cron?) постоянно оценивать и обновлять по мере необходимости.

Флаг --apend кажется нашим другом здесь. Предполагается, что содержимое файлов, ранее скопированных, но впоследствии обновленных, не изменилось.

Например:

  1. Cron вызывает, удаленный файл 10 МБ, локальный файл не существует. Копирует все 10 МБ с удаленного сервера б. rsync существует
  2. Вызывает Cron, удаленный файл 12MB, локальный файл 10MB a. rsync предполагает, что первые 10 МБ каждого файла одинаковы b. Rsync загружает дельта 2 Мб c. rsync выходы

Постоянно вызывать крона - это немного больно. Хотя добавление его в inittab, чтобы обеспечить его повторное создание, когда бы оно ни существовало, может быть возможным. Это будет означать, что процесс rsync всегда запущен, начиная следующую раскрывающуюся часть сразу после завершения предыдущей.

Любые другие предложения?

0

Если я не пойму вопрос неправильно, для этого и создан syslog - общие функции удаленного ведения журнала, а не только ваше конкретное желание скопировать новые части одного файла журнала. Вот одна статья, чтобы вы начали. В основном вы настраиваете удаленное устройство для отправки журналов в вашу систему, а локальное устройство для их сбора. Вот более свежая статья.

Поскольку он довольно стандартный, у вас может быть один центральный сервер системного журнала, собирающий журналы для всех видов оборудования (многие из моих беспроводных точек доступа включают возможность отправки в системный журнал, и это единственный способ просматривать журналы предыдущих циклов включения питания). эти устройства, поскольку локальный журнал непостоянен.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .