Is there any way to display a progress bar while copying from server to local (or vice versa) using scp
?
-
Now i am getting the percentage.But i need a progress bar.– Abdul ShajinMay 20, 2011 at 10:13
-
there's a script around but i have no idea how to make it work though– Uri HerreraMay 20, 2011 at 10:46
-
1You might be able to alter this script for a progress bar for 'cp'`: chris-lamb.co.uk/2008/01/24/…– RinzwindMay 20, 2011 at 11:57
-
scp -r doesn't show progress bar but it gives a percentage of each file– spyderman4g63Jul 20, 2015 at 20:31
4 Answers
I don't think that this can be done with scp
. Last time I needed something like this i.e. progress shown, I used rsync
instead. It shows progress in a bar-like manner. See if it works for you.
You will need to use the --progress
option of rsync
. You can use the following command:
rsync -r -v --progress -e ssh user@remote-system:/address/to/remote/file /home/user/
-
1I was going to post something similar but when I tested it, I just got
2741851 0% 700.39kB/s 0:17:21
and no graphical progress bar (what I think the OP wants).– Oli ♦May 20, 2011 at 11:58 -
1@Oli: I think its because you are copying a very small file. Copying ends before rsync can show progress. If you copy a bigger file then you should get a progress bar.– binWMay 20, 2011 at 12:11
-
1For anybody who was looking for cp with progress bar, rsync works great locally, so this answers that question also! (Just leave off the
-e ssh user@remote-system:
for a local copy andman rsync
explains the many, many options)– sageJun 21, 2014 at 14:10 -
2If you want to connect to a different SSH port than the default, you can use something like
rsync -avz --progress -e 'ssh -p 1223' [email protected]:/foobar.txt ./my-local-copy.txt
– damdAug 23, 2016 at 12:57 -
8
The -v
switch works fine.
Example:
5% 9232KB 357.5KB/s 07:48 ETA
-
4
-
9@fuero
man scp
: "-3
Copies between two remote hosts are transferred through the local host. Without this option the data is copied directly between the two remote hosts. Note that this option disables the progress meter." Aug 23, 2019 at 14:42 -
As of 2018, progress and ETA are shown by default and could be disabled by -q
-
4
-
1With this, do you mean overall progress or on a per-file basis? I only see it on a per-file basis in my freshly installed Debian 9.– mazunkiMay 15, 2019 at 8:06
-
2
-
For some reason I can see the progress when I run
scp
in a terminal, but when it is running as part of acloud-init
script, I don't see any progress (withcurl
I did see progress)... any idea why? And how to show progress even in acloud-init
process? Dec 4, 2021 at 14:41 -
@Drachenfels at least as of the latest macOS (Ventura at the moment), it does show the progress and ETA by default. Jan 3, 2023 at 20:03
I don't know how to do this in a command line. I'm sure it's possible but there is a graphical method for doing this.
Nautilus (the default file browser in Ubuntu) can mount ssh/sftp servers. They act like a local filesystem after that and you can copy files around like you normally would. And you get the usual progress bar that you would with a normal copy.
Look under the File
menu for Connect to server...