1

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

Мне нужно взять новейший файл журнала с одного компьютера и перенести этот файл журнала на другой компьютер. Таким образом, если один файл журнала изменяется на одном сервере, он обновляется на другом сервере.

Я думаю, что мне нужно использовать rsync. И мне также нужно поставить его на работу cron?

2 ответа2

0

rsync не может объединить содержимое двух файлов журнала в один.

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

Как предлагается в комментарии, для непрерывного объединения файлов журналов сконфигурируйте серверное программное обеспечение для регистрации через средство syslog журнала на центральном сервере системного журнала.

0

Вы можете использовать опцию -u aka --update для rsync и автоматически запустить его с помощью crontab . Со страницы руководства rsync:

-u, --update                skip files that are newer on the receiver

Обратите внимание также на другие варианты, которые могут удовлетворить другие потребности:

 --inplace               update destination files in-place
 --append                append data onto shorter files
 --append-verify         --append w/old data in file checksum

Что касается использования задания cron, взгляните на crontab . Вы даете crontab файл, который он читает, чтобы знать, когда запускать задачи. Формат файла:

minute hour day_of_month month day_of_week COMMAND

Вы можете выполнить задание каждые 7 минут с помощью файла:

#  .---------------- minute (0 - 59) 
#  |   .------------- hour (0 - 23)
#  |   |   .---------- day of month (1 - 31)
#  |   |   |   .------- month (1 - 12) OR jan,feb,mar,apr ... 
#  |   |   |   |  .----- day of week (0 - 7) (Sunday=0 or 7)  OR sun,mon,tue,wed,thu,fri,sat 
#  |   |   |   |  |
#  *   *   *   *  *  command
   */7 *   *   *  *  mail -s 'cron working' youremail@example.com

Предполагая, что вы называете свой файл crontab ~/crontab.bash , вы устанавливаете задания crontab на определенную машину, например:

crontab ~/crontab.bash

Смотрите вики-страницу для получения дополнительной информации.

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