Saya sesekali mengunduh file yang sangat besar melalui scp dan ada kemungkinan kecil setiap kali koneksi terjatuh dan memotong transfer di tengah jalan.
Apakah ada cara untuk melanjutkannya?
linux
file-transfer
scp
GJ.
sumber
sumber
dd
dengan blocksize kecil bisa lambat (hanya 350 kB / dtk di sini). Untungnya,scp
transfer tampaknya datang dalam blok 1024 byte. Jika jadi untuk file Anda (atau yang lain, oleh truncating ke terdekat 1024 blok byte), Anda dapat mempercepat itu seperti ini:ssh rsys "dd if=./srcfile bs=1024 skip=$sofar" >> ./destfile
. (Perhatikan bahwa$sofar
jumlah blok yang harus dilewati adalah 1024 byte!)rsys
di baris kedua hanyalah contoh nama host, bukan argumen khusus untukssh
. Saya sarankan Anda menggantinya denganuser@host
untuk menghindari kebingungan.Dengan
scp
, tidak.Jika kedua ujungnya memilikinya, Anda dapat menggunakannya
rsync -LvzP remoteserver:path/to/file localfile
untuk mentransfer satu file.sumber
Ya, ada beberapa cara untuk melanjutkan dari titik interupsi, tetapi tidak mungkin menggunakan scp.
sftp reget filename
lakukan apa yang kamu butuhkan. Yarek dan Grawity telah memberikan solusi valid yang saya beri +1 untuk keduanya, tetapi untuk melanjutkan dari titik interupsi, saya suka rsync. Contoh perintah yang diberikan keduanya menganggap Anda mengambil file dari server jauh ke workstation lokal Anda (mengunduh). Harap diingat bahwa dua parameter terakhir harus dianggap source_file dan target_file dalam urutan itu. Sintaks nama file bervariasi berdasarkan pada apakah sumber atau file target lokal atau jauh. Jika saya mengirim (mengunggah) file [teks], saya akan menulis ulang contoh yang diberikan sebagai:Dan untuk solusi rsync, saya tambahkan
-e ssh
. Anda harus mempertimbangkan apakah Anda perlu verbositas, kompresi, mempertahankan kepemilikan, izin, stempel waktu, direktori perulangan, dll. Periksa halaman manual dan google, mengenai parameter -L. Anda mungkin ingin symlink tetap sebagai tautan alih-alih merujuknya.rsync -P -e ssh local_source_file remoteserver:path/to/interrupted_target_file
sumber
Ada solusi lain (selain
rsync
ataudd
solusi yang dinyatakan di sini) yang saya terkejut tidak ada yang disebutkan: itu adalahreput
perintahsftp
.sumber
Memungkinkan Anda menentukan batas waktu koneksi. Dapat menjaga koneksi Anda dari putus.
sumber
Ya, jika kedua ujungnya mendukung sftp - setelah
scp remoteuser@remotehost:/absolute/filename .
gagal Anda dapat melanjutkan dengan melakukansftp remoteuser@remotehost
dan kemudianreget /absolute/filename
melanjutkan pengunduhan.sumber