NET :: SCP использует несколько соединений для передачи нескольких файлов? - PullRequest
0 голосов
/ 22 июля 2010

HI, На самом деле я пытаюсь сократить время, необходимое для передачи N-числа файлов с удаленного компьютера на локальную машину с помощью безопасной передачи файлов, ранее я использовал системную команду scp, которая устанавливает соединение для каждой передачи файлов. Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 22 июля 2010

Если у вас нет ограничения пропускной способности для каждого отдельного TCP-соединения, вы не получите существенного сокращения времени загрузки с помощью нескольких SCP-соединений.

Вы можете проверить ускорение, добавив отдельную команду scp для каждого файла в сценарии оболочки и синхронизировав сценарий. Затем перезапустите сценарий оболочки с & в конце каждой строки scp. Если это ускоряет передачу, и вы действительно хотите сделать это в Perl, посмотрите на fork или Parallel :: ForkManager .

0 голосов
/ 22 июля 2010

Я думаю, что это создаст отдельное соединение каждый раз. Однако scp с флагом -r (который использует Net :: SCP) рекурсивно копирует все файлы в каталоге с одним соединением. Это может быть правильным способом, если у вас есть файлы в нескольких каталогах и вы хотите скопировать все файлы в этих каталогах.

В противном случае rsync с опцией --files-from должен использовать только одно соединение. (Не забудьте -z для сжатия или -a).

Если единственная причина, по которой вы рассматриваете использование perl для этого, заключается в том, что вам нужен один сеанс, то просто используйте командную строку rsync, чтобы получить этот эффект (с --files-from). Если вы хотите, чтобы perl power генерировал список файлов из, File :: Rsync поддерживает это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...