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

241

Я копирую файл 7,5 ГБ на удаленный сервер с помощью команды scp . В какой-то момент перерыв передачи файлов, и я должен начать все сначала.

Временный объем передаваемого файла полностью потерян? Можно ли как-то перезапустить передачу с того места, где она остановилась с предыдущей попытки? Если нет, то есть ли для этого какая-нибудь стандартная команда передачи файлов из командной строки Unix?

Matko
источник
1
На этот вопрос найдено больше ответов , в т.ч. решения без rsync.
Танюш

Ответы:

401

Если вам нужно возобновить передачу scp с локального на удаленный , попробуйте с помощью rsync:

rsync --partial --progress --rsh=ssh local_file user@host:remote_file

Короткая версия, на которую указывает @ aurelijus-rozenas :

rsync -P -e ssh local_file user@host:remote_file

Обычно порядок аргументов для rsync

rsync [options] SRC DEST
Том МакКлюр
источник
35
Для порта, отличного от используемого по умолчанию 22rsync -P -e "ssh -p 222" SRC DEST
asofyan
4
И если rsync -eэто прервано, я обнаружил переименование. <Имя_файла>. <6funnychars> в <имя_файла> в месте назначения, прежде чем возобновить rsync -eего.
Gaoithe
5
rsync работает, только если он доступен на другой стороне.
декабря
1
Действительно ли rsync возобновляет передачу файлов, начатую в scp? Нужны ли на самом деле две команды rsync, одна команда rsync, а не scp, чтобы начать копирование и затем отключиться, а затем вторая команда rsync, чтобы возобновить копирование?
Джеффри Андерсон
4
Неважно, как вы изначально получили частичную загрузку. Вы можете начать с scp, а затем с rsync.
Том МакКлюр
17

Это все, что вам нужно.

 rsync -e ssh file host:/directory/.
DigitalRoss
источник