scp -r не показывает индикатор выполнения, но выдает процент от каждого файла
spyderman4g63
Ответы:
93
Я не думаю, что это может быть сделано с scp. В прошлый раз мне нужно было что-то вроде этого, т.е. показанный прогресс, я использовал rsyncвместо этого. Это показывает прогресс в форме бара. Посмотрите, работает ли это для вас.
Вам нужно будет использовать --progressопцию rsync. Вы можете использовать следующую команду:
Я собирался опубликовать что-то подобное, но когда я протестировал это, у меня просто 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
Это должен быть правильный ответ! зачем беспокоиться и установить rsync
Самир Сабри
3
Это не похоже на работу при использовании -3.
fuero
1
@fuero man scp: « -3Копии между двумя удаленными хостами передаются через локальный хост. Без этой опции данные копируются непосредственно между двумя удаленными хостами. Обратите внимание, что эта опция отключает индикатор прогресса. »
Парень с The Hat
4
Я не знаю, как это сделать в командной строке. Я уверен, что это возможно, но для этого есть графический метод.
Nautilus (файловый браузер по умолчанию в Ubuntu) может монтировать серверы ssh / sftp. После этого они действуют как локальная файловая система, и вы можете копировать файлы, как обычно. И вы получите обычный индикатор выполнения, который вы бы сделали с обычной копией.
Ответы:
Я не думаю, что это может быть сделано с
scp
. В прошлый раз мне нужно было что-то вроде этого, т.е. показанный прогресс, я использовалrsync
вместо этого. Это показывает прогресс в форме бара. Посмотрите, работает ли это для вас.Вам нужно будет использовать
--progress
опциюrsync
. Вы можете использовать следующую команду:источник
2741851 0% 700.39kB/s 0:17:21
не было графического индикатора выполнения (что, я думаю, хочет ОП).-e ssh user@remote-system:
для локальной копии иman rsync
объясните много, много вариантов)rsync -avz --progress -e 'ssh -p 1223' root@google.com:/foobar.txt ./my-local-copy.txt
rsync
то время как вам просто нужно добавить-v
вscp
-v
Переключатель работает нормально.Пример:
источник
-3
.man scp
: «-3
Копии между двумя удаленными хостами передаются через локальный хост. Без этой опции данные копируются непосредственно между двумя удаленными хостами. Обратите внимание, что эта опция отключает индикатор прогресса. »Я не знаю, как это сделать в командной строке. Я уверен, что это возможно, но для этого есть графический метод.
Nautilus (файловый браузер по умолчанию в Ubuntu) может монтировать серверы ssh / sftp. После этого они действуют как локальная файловая система, и вы можете копировать файлы, как обычно. И вы получите обычный индикатор выполнения, который вы бы сделали с обычной копией.
Посмотрите в
File
меню дляConnect to server...
источник
Начиная с 2018 года, прогресс и ETA отображаются по умолчанию и могут быть отключены
-q
источник