Атомарный перенос файлов между серверами (rsync?)

.des.

Поставил пиво кому надо ;-)
Атомарный перенос файлов между серверами (rsync?)

Существует несколько отдельных web серверов (физически расположенных на различных машинах).
В каждом из них работает лог-модуль (в файлах). Необходимо периодично (раз в несколько минут) переносить эти логи для последующей обработки на один выделенный сервер.
Причем после старта процесса переноса файлов на выделенный сервер лог-модуль должен писать логи в вновь созданный одноименный файл.
То есть модуль переноса файлов перед началом трансфера переименовывает этот файл (поместив в темповую директорию) и из нее медленно копировать (или что-то подобное этому). Лочить лог файлы в процессе копирования нельзя, так как заставлять ждать лог-модуль нельзя.
Как все это осуществить я знаю, хочется просто удостовериться что готовых решений нет.

Обладает ли, например, rsync подобной функциональностью?
 

si

Administrator
тут скорее больше задача того кто пишет в log, а не того кто его будет копировать

например как сделано в nginx, все процессы веб сервера пишут в 1 файл, если мы хотим его крутит, мы его переименовываем, при этом процессы продолжают писать туда, он же
у них осталься отрытый. после этого мы посылаем сигнал, что надо лог переоткрыть, они дописывают что что у них было и переоткрывают его заново,
т.е создается новый файл с прежнем именем. нам остается после посылки сигнала сколько то подождать, чтобы процессы все записали что должны были и спокойно работать
с переименованным файлом.

еще можно посмотреть в сторону syslog, т.е сразу посылать все на 1 сервер.
 
Сверху