Рядок ходу для команди scp


92

Чи є спосіб відображення панелі прогресу під час копіювання з сервера на локальний (або навпаки) за допомогою scp?


Тепер я отримую відсоток. Але мені потрібна смужка прогресу.
Абдул Шахін

є сценарій навколо, але я не маю уявлення, як змусити його працювати
Урі Еррера

1
Можливо, ви зможете змінити цей сценарій на панелі прогресу для 'cp' ': chris-lamb.co.uk/2008/01/24/…
Rinzwind

scp -r не показує панель прогресу, але він дає відсоток від кожного файлу
spyderman4g63

Відповіді:


92

Я не думаю, що це можна зробити 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
@Oli: Я думаю, це так, оскільки ви копіюєте дуже маленький файл. Копіювання закінчується до того, як 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
чорт

4
навіщо використовувати, rsync поки вам просто потрібно додати -vдоscp
Самір Сабрі

64

-vПеремикач працює нормально.

Приклад:

5% 9232KB 357.5KB / s 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


не на macos, lol!
Драченфельс

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