109

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 Shajin May 20 '11 at 10:13
  • there's a script around but i have no idea how to make it work though – Uri Herrera May 20 '11 at 10:46
  • 1
    You might be able to alter this script for a progress bar for 'cp'`: chris-lamb.co.uk/2008/01/24/… – Rinzwind May 20 '11 at 11:57
  • scp -r doesn't show progress bar but it gives a percentage of each file – spyderman4g63 Jul 20 '15 at 20:31
101

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/
| improve this answer | |
  • 1
    I 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 '11 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. – binW May 20 '11 at 12:11
  • 1
    For 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 and man rsync explains the many, many options) – sage Jun 21 '14 at 14:10
  • 1
    If you want to connect to a different SSH port than the default, you can use something like rsync -avz --progress -e 'ssh -p 1223' root@google.com:/foobar.txt ./my-local-copy.txt – damd Aug 23 '16 at 12:57
  • 5
    why use rsync while you just need to add -v to scp – Samir Sabri Apr 21 '18 at 8:42
91

The -v switch works fine.

Example:

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

| improve this answer | |
  • 10
    That's correct answer. – artem Nov 22 '17 at 14:18
  • 1
    That should be the correct answer! why bother and install rsync – Samir Sabri Apr 21 '18 at 8:40
  • 3
    It doesn't seem to work when using -3. – fuero Jul 18 '18 at 15:54
  • 4
    @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." – The Guy with The Hat Aug 23 '19 at 14:42
13

As of 2018, progress and ETA are shown by default and could be disabled by -q

| improve this answer | |
  • 1
    not on macos, lol! – Drachenfels Apr 22 '19 at 23:54
  • With 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. – mazunki May 15 '19 at 8:06
  • except when using -3 – törzsmókus Jul 14 at 20:16
5

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...

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.