Рядок ходу для команди 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.