Saya ingin mentransfer file antara dua host jarak jauh menggunakan shell lokal, tetapi tampaknya rsync tidak mendukung sinkronisasi jika dua remote ditentukan sebagai berikut:
$ rsync -vuar host1:/var/www host2:/var/www
The source and destination cannot both be remote.
Apa solusi/perintah lain yang dapat saya gunakan untuk mencapai hasil yang serupa?
Jawaban yang Diterima:
Seperti yang Anda temukan, Anda tidak dapat menggunakan rsync dengan sumber jarak jauh dan tujuan jarak jauh. Dengan asumsi kedua server tidak dapat berbicara langsung satu sama lain, dimungkinkan untuk menggunakan ssh untuk melakukan tunnel melalui mesin lokal Anda.
Alih-alih
rsync -vuar host1:/var/www host2:/var/www
Anda dapat menggunakan ini
ssh -R localhost:50000:host2:22 host1 'rsync -e "ssh -p 50000" -vuar /var/www localhost:/var/www'
Jika Anda bertanya-tanya, -R
opsi mengatur saluran terbalik dari port 50000 pada host1 yang memetakan (melalui mesin lokal Anda) ke port 22 pada host2. Tidak ada koneksi langsung dari host1 ke host2.