Есть ли способы помимо передачи списка из find, заставить rsync синхронизировать только файлы, созданные более минуты назад?

Есть синхронизация rsync'ом определенных директорий на двух серверах, на источнике в эту папку периодически пишет ПО, на сервере назначения файлы забирает другое ПО, на сервере источника файлы не сохраняются(по ТЗ так сказать). Собственно столкнулся внезапно с проблемой, из-за того что неправильно мне входные условия дали, оказывается ПО не формирует файл где-то у себя и потом кладет в папку для выгрузки, а сразу пишет туда, в результате rsync хватает файл, в который ещё пишутся изменения, переносит на другой сервер, источник удаляет. Что это дает: битый файл на сервере назначения, падающая задача записи в файл.
Вобщем-то find -mmin решение проблемы, но интересно, есть ли какие-то другие способы это решить? man rsync вроде изучил, не нашлось ничего похожего.
  • Вопрос задан
  • 434 просмотра
Решения вопроса 1
sgjurano
@sgjurano
Разработчик
Решал похожую задачу. Самый правильный путь - потребовать создания флагов, указывающих на то, что файл закончил создаваться. Можно внутрь md5 файла писать. А вы на своей стороне будете проверять, существует ли для файла соответствующий файл-флаг и корректная ли у него md5.

Если это невозможно, то правильным способом было бы считывать с некоторой паузой md5 файлов (если файлы небольшие, для больших лучше размер), и если md5 с предыдущего считывания не поменялся, то считать файл готовым к скачиванию и копировать его.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@devian3000
Посмотрите в сторону
lsyncd. (надстройка на rsync)

Он синхронизирует список изменений c задержкой, думаю в данном случаем может помочь.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы