При выполнении запроса rsync с удаленного сервера с помощью следующей команды:
/usr/bin/rsync -av -e ssh --delete --chmod=a+rwx,g+rwx,o-wx --dry-run username@server:/remote/path/ /home/dir/local/path
Я получаю следующую ошибку:
receiving file list ... Invalid flist flag: 1004
rsync error: protocol incompatibility (code 2) at flist.c(2354) [Receiver=3.0.7]
При выполнении обратного (например, PUSH) с удаленного на локальный, я получаю следующее:
building file list ... Invalid flist flag: 1004
rsync error: protocol incompatibility (code 2) at flist.c(2354) [Receiver=3.0.7]
rsync: connection unexpectedly closed (8 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(468) [sender=2.6.8]
Я попытался удалить параметры один за другим, и, похоже, это связано с флагом -a
Окружающая среда
# local machine
Linux lbox 2.6.32-21-generic #32-Ubuntu SMP Fri Apr 16 08:10:02 UTC 2010 i686 GNU/Linux
# rsync version
rsync version 3.0.7 protocol version 30
# remote machine
FreeBSD rbox 6.4-STABLE FreeBSD 6.4-STABLE #0: Mon Feb 22 01:05:13 EST 2010 UNIX-BSD
rsync version 2.6.8 protocol version 29
Можно ли это легко решить?
Коробка FreeBSD имеет шестилетнюю версию rsync, которая использует более старую версию протокола. Вы можете заставить новую версию rsync использовать старый протокол, добавив --protocol=29
на ваш rsync
команда.
Интересно, что установка промежуточной машины между исходной и конечной машинами дает желаемый результат:
т.е.
машина 1 (происхождение) >> машина 2 (посредник) >> машина 3 (место назначения)
machine 1: rsync version 2.6.8 protocol version 29
machine 2: rsync version 3.0.3 protocol version 30
machine 3: rsync version 3.0.7 protocol version 30