2016-11-22 7 views
1

У меня есть процесс, который создает файлы текстовых журналов и некоторый резервный сервер. Я хочу переместить текстовые файлы журнала на резервный сервер (с удаленным исходным файлом). И при следующем запуске rsync, если есть файл журнала с тем же именем - добавьте/соедините его с ранее перемещенным файлом.rsync с добавлением меньшей до более длинной части файла, существующей на приемнике

rsync -av --append --remove-source-files [email protected]:/source/ [email protected]:/destination/

И все отлично работает, за исключением - если есть файл с таким же именем источника и назначения, а также назначения/приемник имеют больше файлов, чем на исходном сервере - это пропущено. Как я могу отключить эту проверку длины файла -append? Я хочу просто добавлять файлы с тем же именем без ограничений.

ответ

0

append вариант не работает.

От человека странице:

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

Итак, если вы «добавить» файл 2kB в 1КБ файл, конечный файл с 2KB быть, и первым 1KB большего файла будет отброшен. И наоборот, если вы «добавите» файл равного или меньшего размера, тогда весь файл в итоге будет отброшен.

Передача опции --append Вы в основном обещаете rsync, что вы знаете, Старт файла не изменится.

Но, если вы удалите файл, то начался файл , изменив. Аналогичным образом, логротат сделает плохие вещи.

Заключение: --append не играет хорошо с --remove-source-files.

Опция --append-verify решит проблему logrotate, но не решит вашу проблему, поскольку она все равно будет удалять данные (хотя отличается от данных).