
Der Remote-Server ist ein FreeBSD-ähnliches System, auf dem rsync nicht installiert ist:
$ ssh [email protected] which rsync scp
Password:
rsync not found
/usr/local/bin/scp
$ rsync -a /ring/0/share/Archives_AudioVisuel/TEST [email protected]:/ifs/par-nas01/data/MPP/ADN_Archives/Audiovisuels/
Password:
zsh:1: command not found: rsync
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: remote command not found (code 127) at io.c(226) [sender=3.1.2]
$
Ich habe versucht, etwas hinzuzufügen -e ssh
, aber ich erhalte dieselbe Fehlermeldung, rsync
die besagt not found
:
Und wenn ich versuche, --rsync-path=/usr/local/bin/scp
etwas hinzuzufügen, erhalte ich eine scp: illegal option -- -
Fehlermeldung.
Wie kann ich rsync
einen Server einrichten, auf dem nur das scp
Tool vorhanden ist?
Antwort1
Wenn Sie keine Software auf dem Remote-FreeBSD-Rechner installieren können, aber Software auf Ihrem lokalen Linux-Rechner installieren können, können Sie verwendensshfs
als Problemumgehung.
mkdir my_mountpoint
# The pathname (here just a slash) indicates the root of the mounted FS.
sshfs admin@remote_machine:/ $_
Der sshfs
Befehl startet den /usr/libexec/sftp-server
Befehlauf der FernbedienungFreeBSD-Maschine, einevorinstalliertbinär. Jetzt können Sie Ihren Einhängepunkt verwenden, als ob er sich im globalen Pfadnamensraum befände. Denken Sie daran, dass die ${_}
Shell-Variable zum letzten Argument des vorherigen Befehls erweitert wird.
rsync -a /ring/0/share/Archives_AudioVisuel/TEST \
${_}/ifs/par-nas01/data/MPP/ADN_Archives/Audiovisuels/
Wenn Sie fertig sind, heben Sie die FUSE-Einbindung (Dateisystem im Benutzerbereich) mit dem fusermount
Dienstprogramm auf.
fusermount -u my_mountpoint
Ich fürchte, diese Methode wird nicht funktionierenvollallerdings die Verwendung der effizienten Δ-Kopieralgorithmen von rsync. Wenn Sie Videoarchive synchronisieren, sollte dies wohl nicht so wichtig sein.