Progress bar untuk perintah scp

92

Apakah ada cara untuk menampilkan bilah kemajuan saat menyalin dari server ke lokal (atau sebaliknya) menggunakan scp?

Abdul Shajin
sumber
Sekarang saya mendapatkan persentasenya. Tapi saya butuh progress bar.
Abdul Shajin
ada skrip di sekitar tetapi saya tidak tahu bagaimana membuatnya bekerja
Uri Herrera
1
Anda mungkin dapat mengubah skrip ini untuk bilah kemajuan untuk 'cp'`: chris-lamb.co.uk/2008/01/24/…
Rinzwind
scp -r tidak menampilkan bilah kemajuan tetapi memberikan persentase dari setiap file
spyderman4g63

Jawaban:

93

Saya tidak berpikir ini bisa dilakukan scp. Terakhir kali saya membutuhkan sesuatu seperti ini yaitu kemajuan yang ditunjukkan, saya menggunakan rsyncsebagai gantinya. Ini menunjukkan kemajuan dengan cara seperti bar. Lihat apakah itu bekerja untuk Anda.

Anda harus menggunakan --progressopsi rsync. Anda dapat menggunakan perintah berikut:

rsync -r -v --progress -e ssh user@remote-system:/address/to/remote/file /home/user/
binW
sumber
1
Saya akan memposting sesuatu yang serupa tetapi ketika saya mengujinya, saya baru saja mendapat 2741851 0% 700.39kB/s 0:17:21dan tidak ada progress bar grafis (apa yang saya pikir OP inginkan).
Oli
1
@ Oli: Saya pikir ini karena Anda menyalin file yang sangat kecil. Menyalin berakhir sebelum rsync dapat menunjukkan kemajuan. Jika Anda menyalin file yang lebih besar maka Anda harus mendapatkan progress bar.
binW
1
Bagi siapa saja yang mencari cp dengan progress bar, rsync bekerja sangat baik secara lokal, jadi ini menjawab pertanyaan itu juga! (Biarkan saja -e ssh user@remote-system:salinan lokal dan man rsyncjelaskan banyak, banyak pilihan)
bijak
1
Jika Anda ingin terhubung ke port SSH yang berbeda dari yang standar, Anda dapat menggunakan sesuatu sepertirsync -avz --progress -e 'ssh -p 1223' [email protected]:/foobar.txt ./my-local-copy.txt
damd
4
mengapa menggunakan rsync sementara Anda hanya perlu menambahkan -vkescp
Samir Sabri
64

The -vberalih bekerja dengan baik.

Contoh:

5% 9232KB 357.5KB / s 07:48 ETA

PJ Brunet
sumber
6
Itu jawaban yang benar.
int_32
Itu seharusnya jawaban yang benar! mengapa repot-repot dan menginstal rsync
Samir Sabri
3
Tampaknya tidak berfungsi saat menggunakan -3.
fuero
1
@ fuero man scp: " -3Salinan antara dua host jarak jauh ditransfer melalui host lokal. Tanpa opsi ini data disalin langsung antara dua host jarak jauh. Perhatikan bahwa opsi ini menonaktifkan meter kemajuan. "
The Guy with The Hat
4

Saya tidak tahu bagaimana melakukan ini di baris perintah. Saya yakin itu mungkin tetapi ada metode grafis untuk melakukan ini.

Nautilus (browser file default di Ubuntu) dapat me-mount server ssh / sftp. Mereka bertindak seperti sistem file lokal setelah itu dan Anda dapat menyalin file di sekitar seperti biasanya. Dan Anda mendapatkan bilah kemajuan yang biasa Anda lakukan dengan salinan normal.

Lihat di bawah Filemenu untukConnect to server...

Oli
sumber
4

Pada 2018, kemajuan dan ETA ditampilkan secara default dan dapat dinonaktifkan oleh -q

Milan Kerslager
sumber
bukan pada makro, lol!
Drachenfels
Dengan ini, maksud Anda kemajuan keseluruhan atau berdasarkan per-file? Saya hanya melihatnya pada basis per-file dalam saya baru diinstal Debian 9.
mazunki