Dengan scp
, tidak.
Jika kedua ujungnya memilikinya, Anda dapat menggunakan rsync -LvzP remoteserver:path/to/file localfile
untuk mentransfer satu file.
Anda dapat mencoba pendekatan berikut:alih-alih scp gunakan dd untuk melewati bagian yang diunduh dan menambahkan sisanya ke file.
sofar=`ls -l ./destfile | awk '{print $5}'`
ssh rsys "dd if=./srcfile bs=1 skip=$sofar" >> ./destfile
Optimalisasi yang memungkinkan:bekerja dengan blok besar. Mari tinggalkan ini sebagai pekerjaan rumah.
Ya, ada cara untuk melanjutkan dari titik interupsi, tetapi tidak mungkin menggunakan scp. sftp reget filename
melakukan apa yang Anda butuhkan. Yarek dan Grawity telah memberikan solusi valid yang saya beri +1 untuk keduanya, tetapi untuk melanjutkan dari titik interupsi, saya suka rsync. Perintah contoh yang diberikan menganggap Anda sedang mengambil file dari server jarak jauh ke workstation lokal Anda (mengunduh). Harap diingat bahwa dua parameter terakhir harus dipertimbangkan file_sumber dan file_target dalam urutan itu. Sintaks nama file bervariasi berdasarkan apakah file sumber atau target lokal atau jarak jauh. Jika saya mengirim (mengunggah) file [teks], saya akan menulis ulang contoh yang diberikan sebagai:
#From local to remote sofar=`ssh remote_system ls -l interrupted_file | awk '{print $5}'`; dd if=source_file bs=1 skip=$sofar | ssh remote_system "cat >> ./interrupted_file"
Dan untuk solusi rsync, saya menambahkan -e ssh
. Anda harus mempertimbangkan apakah Anda memerlukan verbositas, kompresi, pertahankan kepemilikan, izin, stempel waktu, direktori berulang, dll. Periksa halaman manual dan google, mengenai parameter -L. Anda mungkin ingin symlink tetap sebagai tautan alih-alih mereferensikannya.
rsync -P -e ssh local_source_file remoteserver:path/to/interrupted_target_file