Я пытаюсь перенести большой (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, чтобы увидеть больше информации во время передачи.