Transfer file yang andal melalui tautan jaringan yang lambat atau tidak stabil

8

Saya perlu mentransfer sejumlah file file melalui tautan broadband berkualitas rendah ke server. File berukuran besar, dan membutuhkan waktu sekitar 30 menit untuk mentransfer per file.

Saya menggunakan scp, tetapi terkadang hang - transfer tidak gagal dengan kesalahan, tetap berjalan, tetapi tidak ada data lebih lanjut yang ditransfer.

Jadi, saya mencari solusi unggahan "ailsafe ", yang akan berfungsi walaupun tautannya gagal selama beberapa menit atau sebaliknya tidak bisa diandalkan.

Ide saya adalah:

  1. pisahkan file besar menjadi bagian-bagian kecil
  2. unggah bagian, dengan batas waktu dan coba lagi jika gagal

Pertanyaan:

  • apakah ada alat yang siap dijalankan yang mengimplementasikan ide ini? (tidak ada kebutuhan khusus untuk scp. bisa ftp atau apa pun)
  • apakah ada cara untuk mendeteksi kapan scp hang? ((artinya masih berjalan, tetapi tidak mentransfer data)
pengguna1219721
sumber

Jawaban:

15

Anda dapat menggunakan rsync untuk menyalin file Anda dari satu komputer ke komputer lainnya. rsync dapat menggunakan ssh sebagai transportasi yang mendasarinya. Gabungkan rsync --partialdengan skrip seperti ini untuk mencoba lagi jika terjadi kegagalan jaringan, dan Anda harus dapat memindahkan file Anda bahkan dalam menghadapi kesalahan jaringan.

Cara lain untuk melakukannya adalah dengan me-mount sistem file jarak jauh di komputer lokal Anda sshfs -o reconnect, dan kemudian hanya cp file tersebut. sshfs / Linux akan mengurus sisanya. Berdasarkan beberapa pengujian yang saya lakukan hari ini, ini tampaknya jauh lebih lambat daripada rsync.

Terakhir, Anda dapat mengatur VPN antara kedua mesin. Ini melibatkan sebagian besar pekerjaan, dan salah satu dari solusi di atas jauh lebih mudah, tetapi itu akan memecahkan masalah koneksi jaringan yang rapuh. Dan seperti yang dicatat oleh beberapa orang, ini juga bisa tidak jelas. Ini dapat berfungsi jika VPN sangat agresif dalam membangun kembali koneksi, seperti OpenVPN, tetapi solusi di atas jauh lebih baik.

Michael Hampton
sumber
1
Untuk membuat ini berfungsi, Anda harus menggunakan --partialbendera (atau sesuatu yang menyiratkan --partialseperti --inplace) jika tidak setiap kali transfer terganggu, transfer parsial akan dihapus dan Anda harus mulai lagi.
womble
Rsync pasti cara untuk pergi ... Atau robocopy untuk windows.
Brian Adkins
Bagaimana tepatnya VPN membantu dengan koneksi yang flakey?
EEAA
Perangkat lunak VPN (mis. OpenVPN) dapat menyambung kembali secara otomatis di latar belakang, secara transparan ke aplikasi apa pun yang berjalan melalui VPN.
Michael Hampton
@ ErikA Pikiranku tepatnya - VPN over flakey link = VPN flakey yang selalu harus direstart. Ini hanya menambah level kedua untuk masalah yaitu perangkat lunak transportasi harus dapat memulai kembali transfer file tepat di mana ia terganggu.
Fiasco Labs