Jak korzystać z rsync przez ssh z adresami IPLA6 LLA (link local address) w OSX?

5

Używam OSX High Sierra i bash. Próbuję użyć skryptu zapasowego opartego na LLA IPv6 (więc zawsze docieram do serwera, bez DHCP, nazw itp.).

W przypadku IPv4 działa to:

rsync -e ssh /src/dir/* user@192.168.0.1:/dst/dir

W systemie Linux / Bash działa to:

rsync -e ssh /src/dir/* user@[fe80::a:b:c:d%eth0]:/dst/dir

Ale na terminalu OSX to nie działało.

ssh: Could not resolve hostname [fe80: nodename nor servname provided, or not known
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at /BuildRoot/Library/Caches/com.apple.xbs/Sources/rsync/rsync-52/rsync/io.c(453) [sender=2.6.9]

Próbowałem wielu kombinacji cytatów, ale bez powodzenia.

Dziękuję Ci!

Jorge
źródło
1
Czy ssh działa samodzielnie z IPv6?
1
Tak, używając na przykład „ssh user @ fe80 :: a: b: c: d% en0”. Więc ssh działa dobrze.
Jorge
Może być istotne, której wersji używasz. Co rsync --versionpowiesz na każdej maszynie?
kasperd

Odpowiedzi:

8

Problem dotyczył wersji rsync dla OSX. Nie wiem dokładnie, na czym polega problem. Powinno to być niektóre z możliwości rsync binary / version.

Wersja OSX:

/usr/bin/rsync --version
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

Instalowanie wersji z Macports:

/opt/local/bin/rsync --version
rsync  version 3.1.2  protocol version 31
...
Capabilities:
    64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
    socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
    append, ACLs, xattrs, iconv, symtimes, no prealloc, file-flags,
    HFS-compression

Chociaż oba mają obsługę IPv6, wersja 2.6.9 rozpowszechniana z OSX nie działa zgodnie z oczekiwaniami.

W wersji 3.1.2 mogę używać:

rsync -e ssh /src/dir/* user@[fe80::a:b:c:d%eth0]:/dst/dir

Dzięki za pomoc.

Jorge
źródło
Działa dla mnie dobrze z wbudowaną wersją, więc nie jestem przekonany, że to wersja macPorts to naprawiła. Widzę dwa możliwe problemy: w systemie macOS interfejs będzie miał postać „en0”, a nie „eth0”. Ponadto [ ]jest znakiem wieloznacznym dopasowującym znaki powłoki; jest mało prawdopodobne, aby coś pasowało, ale na wszelki wypadek powinieneś umieścić wokół niego cudzysłowy ( rsync -e ssh /src/dir/* "user@[fe80::a:b:c:d%en0]:/dst/dir").
Gordon Davisson,