Apakah ada cara mudah untuk mentransfer file antara dua server SSH / SFTP? Solusi yang sempurna adalah FileZilla, tetapi hanya memungkinkan Anda membuat koneksi antara lokal dan jarak jauh, tetapi tidak antara jarak jauh dan jarak jauh.
Secara teoritis saya bisa membuka dua jendela Nautilus dan terhubung ke beberapa ssh://server1/path/to/folder
dan ssh://server2/path/to/folder
kemudian hanya menarik file dari satu ke sisi lain. Pengalaman saya adalah ini sangat tidak stabil. Mengirim file dalam jumlah ukuran yaitu 10MB tidak ada masalah, tetapi mentransfer yaitu 10GB sering mengakibatkan Nautilus menggantung diri dan tetap di sana membutuhkan ps -e | grep nautilus
-> kill -9 <pid>
. Saya juga menguji hal yang sama dengan Nemo dan Caja. Sementara Nemo cenderung lebih stabil daripada dua lainnya, itu masih tidak sempurna dan juga istirahat dari waktu ke waktu. FileZilla sangat stabil, tidak pernah benar-benar membuatnya rusak, tetapi tidak terlalu fleksibel karena fakta bahwa itu hanya dapat terhubung ke server SSH tunggal.
Tentu saja saya juga bisa me-mount folder dengan sshfs
, tapi ini semacam solusi yang tidak nyaman. Terlalu banyak pekerjaan yang harus dilakukan untuk menjalankan transfer yang sederhana.
Apakah ada aplikasi yang dapat menangani transfer antara dua server SSH tanpa putus? Sempurna akan menjadi sesuatu seperti FileZilla, yang mengambil pekerjaan itu lagi jika koneksi terputus.
Jawaban:
Jika Anda menggunakan versi Ubuntu yang masih didukung, maka
scp
perintah Anda akan menyediakan-3
sakelar yang memungkinkan menyalin file dari remote1 ke remote2 melalui localhost :Anda juga dapat menghilangkan
-3
switch, tetapi kemudian Anda akan perlu kunci publik (id_rsa.pub
) dariuser1@remote1
dalam fileauthorized_keys
dariuser2@remote2
:scp
kemudian di bawah kap melakukan yangssh user1@remote1
pertama dan dari sanascp /path/to/file1 user2@remote2:/path/to/file2
. Itu sebabnya kredensial harus didistribusikan berbeda dari-3
solusinya.Dengan kata lain:
scp -3 remote1:file1 remote2:file2
mentransfer file dari remote1 ke localhost dan kemudian kembali ke remote2 . Data tersebut melakukan perjalanan remote1 → localhost → remote2 . The localhost adalah pihak ke-3 dalam skenario ini, maka-3
. Agar ini berfungsi, Anda akan memerlukan kredensial dari localhost pada remote1 dan remote2 karena localhost terhubung ke keduanya.scp remote1:file1 remote2:file2
menyalin file secara langsung dari remote1 ke remote2 dengan kecepatan yang terhubung satu sama lain. localhost tidak terlibat di sini (selain mengeluarkan perintah). Data melakukan perjalanan remote1 → remote2 . Agar ini berfungsi, Anda akan memerlukan kredensial dari localhost hanya pada remote1 tetapi juga Anda memerlukan kredensial remote1 pada remote2 karena localhost terhubung ke remote1 saja dan kemudian remote1 terhubung ke remote2 .Jika memungkinkan saya akan memilih pendekatan kedua. Seperti beberapa komentar sudah katakan:
biasanyasering kabel jaringan antara remote1 dan remote2 jauh lebih tebal daripada kabel antara mereka dan localhost .sumber
-3
.Dalam kebanyakan kasus, dua ssh server dapat saling menjangkau (atau setidaknya satu dapat menjangkau yang lain), dan sekali lagi dalam kebanyakan kasus, internet workstation jauh lebih buruk daripada salah satu server.
Jika demikian, memesan satu server untuk ditransfer ke yang lain adalah caranya.
Periksa
nohup.out
pada server1 untuk kesalahan.Jika jangkauan server adalah sebaliknya Anda dapat membalikkan mesin mana yang menjadi master:
sumber
Mungkin Anda bisa menggunakan salah satu dari beberapa front-end GUI untuk rsync:
Apakah ada aplikasi GUI untuk perintah rsync?
Atau mungkin Anda bisa menggunakan rsync langsung dari baris perintah untuk terhubung ke kedua server jarak jauh:
"Bagaimana cara me-rsync file di antara dua remote"
Saya sering masuk ke satu server dengan ssh, kemudian dari baris perintah server itu menggunakan rsync untuk mendorong atau menarik file ke server jauh lainnya - yang umumnya jauh lebih cepat daripada mencoba mentransfer file melalui beberapa komputer ke-3.
Rsync cukup pintar untuk melakukan beberapa pekerjaan, maka jika ada yang tidak beres dan mengganggu prosesnya, ia kemudian dapat melanjutkan tepat di tempat yang sebelumnya ditinggalkan.
sumber
Anda perlu menggunakan protokol SCP.
scp file you want to transfer login@address_of_second_server:/path_where_you_want_to_save
sumber