123

Is there any way to display a progress bar while copying from server to local (or vice versa) using scp?

4
  • Now i am getting the percentage.But i need a progress bar. May 20 '11 at 10:13
  • there's a script around but i have no idea how to make it work though 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 Jul 20 '15 at 20:31
118

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/
11
  • 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
  • 2
    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
  • 7
    why use rsync while you just need to add -v to scp Apr 21 '18 at 8:42
108

The -v switch works fine.

Example:

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

3
  • 3
    It doesn't seem to work when using -3.
    – fuero
    Jul 18 '18 at 15:54
  • 7
    @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 '19 at 14:42
  • This also doesn't work if you have many smaller files
    – Hakaishin
    Jun 8 at 8:04
20

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

3
  • 2
    not on macos, lol! Apr 22 '19 at 23:54
  • 1
    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
  • 2
    except when using -3 Jul 14 '20 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...

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.