Wie verwende ich rsync via ssh mit IPv6-LLA-Adressen (Link Local Address) unter OSX?

5

Ich benutze OSX High Sierra und bash. Ich versuche, ein Sicherungsskript zu verwenden, das auf IPv6 LLA basiert (damit ich immer den Server erreiche, ohne DHCP, Namen usw.).

Mit IPv4 funktioniert Folgendes:

rsync -e ssh /src/dir/* [email protected]:/dst/dir

Unter Linux / Bash funktioniert das:

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

Aber auf dem OSX-Terminal funktionierte das nicht.

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]

Ich habe viele Anführungszeichenkombinationen ausprobiert, aber ohne Erfolg.

Vielen Dank!

Jorge
quelle
1
Funktioniert ssh mit IPv6 alleine?
1
Ja, zum Beispiel mit "ssh user @ fe80 :: a: b: c: d% en0". Also, ssh funktioniert gut.
Jorge
Es kann relevant sein, welche Version Sie verwenden. Was macht rsync --version auf jeder Maschine sagen?
kasperd

Antworten:

8

Das Problem war mit der OSX-Version von rsync. Ich weiß nicht genau, wo das Problem liegt. Es sollte einige Funktionen von rsync binary / version geben.

OSX-Version:

/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

Installieren einer Version von 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

Obwohl beide über die IPv6-Unterstützung verfügen, funktioniert diese mit OSX gelieferte Version 2.6.9 nicht wie erwartet.

Mit 3.1.2 kann ich verwenden:

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

Danke fürs Helfen.

Jorge
quelle
Mit der eingebauten Version funktioniert es einwandfrei, daher bin ich nicht davon überzeugt, dass es die macPorts-Version ist, die das Problem behoben hat. Ich sehe zwei mögliche Probleme: Unter macOS lautet die Schnittstelle "en0" und nicht "eth0". Ebenfalls, [ ] ist ein Platzhalter für Shell-Zeichenübereinstimmung; es ist unwahrscheinlich, dass irgendetwas gefunden wird. rsync -e ssh /src/dir/* "user@[fe80::a:b:c:d%en0]:/dst/dir" ).
Gordon Davisson