Rsynch и SSH: переименовывать папку только при переименовании из источника - PullRequest
3 голосов
/ 15 января 2010

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

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

Я столкнулся с тем же поведением с lftp, и этот инструмент, похоже, не имеет этих опций. Даже если оно основано на правиле даты файла, файлы в переименованной папке удаляются / перезагружаются.

Заранее спасибо, если кто-то знает, как с этим справиться:)

Ответы [ 2 ]

2 голосов
/ 04 октября 2011

Я искал что-то похожее.

На данный момент лучшее решение, которое я нашел, это:

http://serenadetoacuckooo.blogspot.com/2009/07/rsync-and-directory-renaming.html

В основном упоминается о включении метафайла в каждую папку, который указывает имя папки.
По сути, вы хотели бы проверить этот файл с именем каталога, и rsync, только если они совпадают (в противном случае введите команду удаленного переименования.)

Это зависит от того, для чего вы используете rsync, но я надеюсь, что эта информация может вам помочь.

1 голос
/ 15 января 2010

Как rsync или любая другая программа узнает, что представляет собой переименованный? Что, если две директории являются очень похожими кандидатами и как-то догадывается, что rsync может переименовать то, что было раньше? Это невозможно. Я думаю, что вы застряли с загрузкой снова.

Вы знаете о параметре --delete, справа:

- удалить удалить файлы, которые не существуют на отправляющей стороне

Обратите внимание также на параметр --force:

- принудительно удалить каталоги, даже если они не пусты

...