Индикатор выполнения команды scp


92

Есть ли способ отобразить индикатор выполнения при копировании с сервера на локальный (или наоборот) с помощью scp?


Теперь я получаю процент. Но мне нужен индикатор выполнения.
Абдул Шаджин

есть сценарий, но я понятия не имею, как заставить его работать
Uri Herrera

1
Возможно, вы сможете изменить этот скрипт для индикатора выполнения для 'cp'`: chris-lamb.co.uk/2008/01/24/…
Rinzwind

scp -r не показывает индикатор выполнения, но выдает процент от каждого файла
spyderman4g63

Ответы:


93

Я не думаю, что это может быть сделано с scp. В прошлый раз мне нужно было что-то вроде этого, т.е. показанный прогресс, я использовал rsyncвместо этого. Это показывает прогресс в форме бара. Посмотрите, работает ли это для вас.

Вам нужно будет использовать --progressопцию rsync. Вы можете использовать следующую команду:

rsync -r -v --progress -e ssh user@remote-system:/address/to/remote/file /home/user/

1
Я собирался опубликовать что-то подобное, но когда я протестировал это, у меня просто 2741851 0% 700.39kB/s 0:17:21не было графического индикатора выполнения (что, я думаю, хочет ОП).
Оли

1
@ Оли: Я думаю, это потому, что вы копируете очень маленький файл. Копирование заканчивается до того, как rsync сможет показать прогресс. Если вы копируете файл большего размера, вы должны получить индикатор выполнения.
binW

1
Для тех, кто искал cp с индикатором выполнения, rsync прекрасно работает локально, так что это ответит и на этот вопрос! (Просто оставьте -e ssh user@remote-system:для локальной копии и man rsyncобъясните много, много вариантов)
мудрец

1
Если вы хотите подключиться к порту SSH, отличному от используемого по умолчанию, вы можете использовать что-то вродеrsync -avz --progress -e 'ssh -p 1223' root@google.com:/foobar.txt ./my-local-copy.txt
damd

4
зачем использовать в rsync то время как вам просто нужно добавить -vвscp
Самир Сабри

64

-vПереключатель работает нормально.

Пример:

5% 9232KB 357,5KB / с 07:48 ETA


6
Это правильный ответ.
int_32

Это должен быть правильный ответ! зачем беспокоиться и установить rsync
Самир Сабри

3
Это не похоже на работу при использовании -3.
fuero

1
@fuero man scp: « -3Копии между двумя удаленными хостами передаются через локальный хост. Без этой опции данные копируются непосредственно между двумя удаленными хостами. Обратите внимание, что эта опция отключает индикатор прогресса. »
Парень с The Hat

4

Я не знаю, как это сделать в командной строке. Я уверен, что это возможно, но для этого есть графический метод.

Nautilus (файловый браузер по умолчанию в Ubuntu) может монтировать серверы ssh / sftp. После этого они действуют как локальная файловая система, и вы можете копировать файлы, как обычно. И вы получите обычный индикатор выполнения, который вы бы сделали с обычной копией.

Посмотрите в Fileменю дляConnect to server...


4

Начиная с 2018 года, прогресс и ETA отображаются по умолчанию и могут быть отключены -q


не на макос, лол!
Драхенфельс

При этом вы имеете в виду общий прогресс или для каждого файла? Я вижу это только для каждого файла в моем только что установленном Debian 9.
mazunki
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.