Я пытаюсь настроить rsync для синхронизации моего основного веб-сервера с удаленным сервером, добавив недавно сгенерированный файл на более поздний.
Вот команда, которую я использую:
rsync -avh --update -e "ssh -i /path/to/thishost-rsync-key" remoteuser@remotehost:/foo/bar /foo/bar
Но кажется, что веб-сервер фактически передает все файлы, несмотря на флаг --update. Я пробовал разные комбинации флагов (например, опуская «-a» и используя вместо него «-v»), но ни одна не помогла. Так интересно, как я могу изменить команду rsync для отправки только недавно добавленных файлов. Спасибо
rsync /foo/bar remoteuser@remotehost:/foo/bar
-a
подразумевает эта опция (владелец, группа, привилегии, ...), это должно быть причиной нашей проблемы.-c
вариант. Он пропускает существующие файлы на основе контрольной суммы, а не времени изменения или размера.Ответы:
От
man rsync
:--update
делает что-то немного другое, поэтому, вероятно, вы получаете неожиданные результаты (см.man rsync
):источник
--ignore-existing
означает ли это, что не передаются файлы, которые существуют на приемнике, или не передаются файлы, если на приемнике существует какой-либо файл / папка с тем же именем?В моем случае у меня были похожие проблемы, когда все файлы передавались вместо только измененных / новых. Я решил это с помощью параметров
-t
(вместо-a
) и-P
(эквивалентно--partial --progress
):Это передает только новые файлы и файлы, уже существующие, но измененные:
-a
слишком много, как синхронизация идентификатора пользователя и группы, которая в моем случае не может работать, поскольку у меня разные пользователи и группы в исходной и целевой системах.Параметры подробно:
-h
: читаемые человеком цифры-v
: подробный-r
: записаться в каталоги-P
:--partial
(сохранить частично переданные файлы) +--progress
(показать прогресс во время передачи)-t
: сохранить время модификацииисточник
-rlptgoD
, так что разрешение не расплющивается, группы и владелец сохранены - не мое типичное безопасное для игры резервное копирование ...)Исходя из моего опыта работы с rsync, копирование раздела размером 1 ТБ слишком велико, чтобы быть эффективным. Для его обработки требуется rsync навсегда. Вместо этого делайте это по подкаталогам. То есть, запустите rsync для каждого главного подкаталога. Это происходит намного быстрее, если не нужно манипулировать десятками тысяч файлов.
источник
Пытаться
источник