Привет всем! Я использую rsync для резервного копирования с моего Mac на файловый сервер, работающий под управлением Linux, и вижу следующую ошибку:
rsync -e ssh -vaxE --delete --ignore-errors 192.168.1.3:/bkup/mac/Users/dave/ /Users/dave/Desktop/dave
dave@192.168.1.3's password:
rsync: on remote machine: --extended-attributes: unknown option
rsync error: syntax or usage error (code 1) at main.c(1441) [server=3.0.5]
rsync: connection unexpectedly closed (0 bytes received so far) [receiver]
rsync error: error in rsync protocol data stream (code 12) at /SourceCache/rsync/rsync-37.3/rsync/io.c(452) [receiver=2.6.9]
... достаточно очевидная ошибка, однако -v показывает следующее для двух машин:
MAC (клиентский / локальный):
rsync version 2.6.9 protocol version 29
...
Capabilities: 64-bit files, socketpairs, hard links, symlinks, batchfiles,
inplace, IPv6, 64-bit system inums, 64-bit internal inums
LINUX (сервер / удаленный):
rsync version 3.0.5 protocol version 30
...
Capabilities:
64-bit files, 64-bit inums, 32-bit timestamps, 64-bit long ints,
socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
append, ACLs, xattrs, iconv, symtimes
... поэтому, учитывая, что Linux-бокс говорит, что поддерживает xattrs, почему он выдает жалобу на расширенные атрибуты, запрашиваемые Mac?
FWIW Mac работает под управлением OS X 10.6.1 & Сервер работает под управлением Ubuntu 2.6.28-15-generic - обе машины работают с обновленными стандартными пакетами (никаких специальных разновидностей rsync, установленных с обеих сторон, кроме тех, которые поставляются по умолчанию) .
Любое понимание приветствуется :-)
Флаги -E / --extended-attributes не были частью официального дистрибутива rsync и были патчем, включенным Apple в то время, когда официальный выпуск rsync их не поддерживал.
Теперь в rsync verson 3.x переопределена поддержка расширенных атрибутов способом, несовместимым с патчем Apple. Согласно Страница руководства rsync для 3.0.6, поддержка расширенных атрибутов теперь осуществляется с помощью аргументов --xattrs или -X. Похоже, что он вообще не принимает флаг --extended-attributes.
Вам придется либо не указывать -E, либо устанавливать обновленную версию rsync локально, которая поддерживает новую реализацию.