Beim Versuch, einen Probelauf mit Option -n
über SSH auf einem Remote-Server durchzuführen, sind mir folgende Fehler aufgetreten:
# rsync --progress --delete -avhHen ssh /etc/yum [email protected]:/etc
rsync: Failed to exec n: No such file or directory (2)
rsync error: error in IPC code (code 14) at pipe.c(85) [sender=3.1.0]
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in IPC code (code 14) at io.c(226) [sender=3.1.0]
Wie führe ich mit rsync über ssh einen Probelauf für den obigen Befehl durch?
Antwort1
rsync: Failed to exec n: No such file or directory (2)
Das erklärt es ziemlich gut ...
die -e
Option (Langversion: --rsh=) besagt, dass derFOLGENBefehl als Shell auf dem Zielcomputer.
Sie haben ihm gesagt: -e n
. Sehen Sie sich die Reihenfolge der von Ihnen angegebenen Optionen an. ( -avhHen
)
Kehren Sie die Reihenfolge um, ne
damit die redundante Verwendung -e ssh
wie gewünscht funktioniert.
Antwort2
Das Problem hierbei ist, dassrsync- -e
Optionerwartet die Remote-Shell als allernächstes „Ding“ in der Befehlszeile: hier ist das n
, während es vorher war ssh
.
Normalerweise würde ich -e als eigene Option herauslösen und Folgendes schreiben:
rsync --progress --delete -avhHn -e ssh /etc/yum [email protected]:/etc
aber Sie könnten auch einfach die n
frühere verschieben - es ist wichtig, dass die e
diezuletztOption in einer Gruppe von Kurzoptionen, wenn Sie sie so verwenden möchten.