Назад | Перейти на главную страницу

Как избежать остановки передачи scp при туннелировании через шлюз по ssh?

Я пытаюсь перенести большой (1 ГБ +) файл с одной машины на другую, но мне нужно туннель через шлюз между. Я прекрасно могу передавать небольшие файлы. Однако с большим файлом передача останавливается на полпути.

Прочитав сообщение в блоге о задержке передачи scp, Я пробовал использовать -l 8192 и даже попробовал понизить до -l 2000, но от этого казалось, что он заглохнет раньше:

scp -l 2000 -v -P 2222 username@localhost:/path/to/file.gz .

Из подробного вывода (-v) команды scp, это выглядит как -l не проходит ...

debug1: Sending command: scp -v -f -- /path/to/file.gz

Есть другие идеи?

Уродливым решением было бы использовать rsync вместо того scp. В rsync программа может надежно возобновить прерванные переводы. Если завис, просто вырвись с CTRL-C и повторите команду.

Я думаю, тебе стоит использовать rsync в screen сеанс. Прерывание можно перезапустить с помощью --ignore-existing вариант.

Я не думаю, что rsync - некрасивая работа. Обязательно используйте флаг -c rsync, чтобы он мог продолжить с того места, где остановился, если соединение прервано, также включите --verbose, чтобы увидеть больше информации во время передачи.