У меня есть задание rsyn c, которое перемещает файлы журнала с веб-сервера в архив. Сервер вращает свои собственные журналы, поэтому я могу увидеть такую структуру:
/logs
error.log
error.log.20200420
error.log.20200419
error.log.20200418
Я использую rsyn c для синхронизации c этих файлов журналов каждые несколько минут:
rsync --append --size-only /foo/logs/* /mnt/logs/
Эта команда синхронизирует все с наименьшим количеством обработки. И это важно - вычисление контрольных сумм или запись всего файла каждый раз, когда добавляются несколько строк, - это не go. Но он игнорирует файлы, если на сервере имеется большая версия вместо их замены:
man rsync
:
--append
[...] Если файл должен передается, и его размер на получателе такой же или больше, чем размер на отправителе, файл пропускается.
Есть ли способ сказать rsyn c заменить файлы в этом дело? Использование --append
важно для меня и хорошо работает для других файлов журнала, которые используют уникальные имена файлов. Может быть, есть лучший инструмент для этого?
Служба представляет собой упакованное приложение, которое, к сожалению, я не могу на самом деле редактировать или настраивать, поэтому изменение структуры файлов или путей для меня не вариант.