Ich möchte Dateien zwischen zwei entfernten Hosts über eine lokale Shell übertragen, aber es scheint, dass rsync keine Synchronisierung unterstützt, wenn zwei entfernte Hosts wie folgt angegeben sind:
$ rsync -vuar host1:/var/www host2:/var/www
The source and destination cannot both be remote.
Welche anderen Problemumgehungen/Befehle könnte ich verwenden, um ähnliche Ergebnisse zu erzielen?
Akzeptierte Antwort:
Wie Sie festgestellt haben, können Sie rsync nicht mit einer entfernten Quelle und einem entfernten Ziel verwenden. Vorausgesetzt, die beiden Server können nicht direkt miteinander kommunizieren, ist es möglich, ssh zu verwenden, um über Ihren lokalen Computer zu tunneln.
Statt
rsync -vuar host1:/var/www host2:/var/www
Sie können dies verwenden
ssh -R localhost:50000:host2:22 host1 'rsync -e "ssh -p 50000" -vuar /var/www localhost:/var/www'
Falls Sie sich fragen, das -R
Die Option richtet einen Rückwärtskanal von Port 50000 auf Host1 ein, der (über Ihren lokalen Computer) auf Port 22 auf Host2 abgebildet wird. Es besteht keine direkte Verbindung von Host1 zu Host2.