Apakah ada cara untuk melanjutkan proses perintah scp (secure copy) yang rusak di Linux? [Tutup]

241

Saya menyalin file 7,5 GB ke server jauh menggunakan perintah scp . Pada suatu saat transfer file terputus dan saya harus memulai dari awal lagi.

Apakah jumlah sementara file yang ditransfer benar-benar hilang? Bisakah saya memulai kembali transfer dari tempat terhenti pada upaya sebelumnya? Jika tidak, adakah perintah transfer file baris perintah Unix standar untuk melakukan itu?

Matko
sumber
1
Jawaban lain ditemukan pada pertanyaan ini , termasuk. solusi tanpa rsync.
tanius

Jawaban:

401

Jika Anda perlu melanjutkan transfer scp dari lokal ke jarak jauh , coba dengan rsync:

rsync --partial --progress --rsh=ssh local_file user@host:remote_file

Versi singkat, seperti yang ditunjukkan oleh @ aurelijus-rozenas :

rsync -P -e ssh local_file user@host:remote_file

Secara umum urutan args untuk rsync adalah

rsync [options] SRC DEST
Tom McClure
sumber
35
Untuk port yang berbeda dari default 22 gunakanrsync -P -e "ssh -p 222" SRC DEST
asofyan
4
Dan jika rsync -eterputus saya menemukan mengubah nama. <filename>. <6funnychars> ke <filename> pada tujuan sebelum melanjutkan rsync -ediperlukan.
gaoithe
5
rsync hanya berfungsi jika Anda memilikinya tersedia di sisi lain.
dothebart
1
Apakah rsync benar-benar melanjutkan transfer file yang dimulai pada scp? Apakah dua perintah rsync benar-benar diperlukan, satu rsync, bukan scp, perintah untuk memulai penyalinan, dan kemudian terputus, dan kemudian perintah rsync kedua untuk melanjutkan penyalinan?
Geoffrey Anderson
4
Tidak masalah bagaimana Anda memperoleh unduhan parsial. Anda bisa mulai dengan scp dan kemudian selesai dengan rsync.
Tom McClure
17

Ini yang kamu butuhkan.

 rsync -e ssh file host:/directory/.
DigitalRoss
sumber