Я всегда использую либо rsync
или scp
для того, чтобы скопировать файл с / на удаленную машину. Недавно я обнаружил в руководстве scp
( man scp
) флаг-C
-C Compression enable. Passes the -C flag to
ssh(1) to enable compression.
До того, как я обнаружил этот флаг, zip
раньше и потом scp
.
Это так же эффективно, как просто использовать -C
чем застегивать и расстегивать молнию? Когда используется тот или иной процесс, сделать перевод быстрее?
scp
compression
file-transfer
Remi.b
источник
источник
scp -rv
иscp -Crv
для сравнения пропускной способности.zip
это очень "оконный" формат файла. Вы почти никогда не увидите или не нуждаетесь в этом при работе на машине Linux с собственным программным обеспечением Linux.tar
используется для сворачивания каталогов в один файл, сохраняя при этом права доступа и имена и такие, в то время какgzip
,bzip2
,xz
и т.д. используются для сжатия файлов.tar
Они часто сжимаются, создаваяtar.gz
иtar.xz
распространенные форматы для архивов в Linux. Я видел, как людиscp
катались по своему усмотрению с такими командами, какtar cvz directory | ssh machine 'cd somewhere; tar xz'
.Compression yes
в свой.ssh/config
файл.Ответы:
На самом деле это никогда не будет иметь большого значения, но архивирование файла перед копированием должно быть немного менее эффективным, поскольку использование формата контейнера, такого как,
zip
который может инкапсулировать несколько файлов (напримерtar
), не является необходимым, и это не возможно для потоковой передачи ZIP ввод и вывод (вам нужен временный файл).Использование
gzip
с другой стороны, вместо того,zip
чтобы быть точно таким же, поскольку это то, чтоssh -C
происходит под капотом ... за исключением того, что взломать себя - это больше работы, чем просто использоватьssh -C
.источник
gzip
есть. Означает ли ваш ответ, чтоscp -rC
это, вероятно, самое эффективное решение, которое у меня есть?-C
сжимает поток интерактивного протокола. Вы рассматриваете только данные. Так что ваши выводы неверны. Смотрите мой ответ-C
Флаг обеспечивает сжатие GZIP из потока SSH.Это эквивалент
Accept-Encoding: gzip
в HTTP.Как работает флаг, зависит от типа передаваемых вами данных:
При передаче одного большого файла производительность будет примерно такой же, как при архивировании файла перед передачей (без учета эффективности алгоритма zip vs. gzip).
Но
-C
для вас, как пользователя, вам потребуется меньше усилий.При передаче большого количества небольших файлов производительность будет ниже, чем при архивировании перед передачей.
Причиной этого является то, что перед каждой передачей файлов существует интерактивная связь между сервером SCP и клиентом (для обмена метаданными файла, такими как отметка времени и разрешения). Поэтому обеим сторонам придется немного подождать, пока другая сторона ответит (сжатие не поможет во время ожидания). Это потерянное время для каждого переданного файла. Сколько тратится времени, зависит от времени ожидания соединения. В конце концов, передача может быть на несколько медленнее.
При передаче одного заархивированного файла это общение происходит только один раз.
источник
Включает сжатие gzip в ssh (под scp).
При медленном соединении это ускорит процесс, при любом достаточно быстром соединении (100 Мбит или быстрее) сжатие, скорее всего, замедлит процесс.
Это будет более или менее эффективно, чем zip, в зависимости от того, будет ли gzip (в частности, gzip -6) более или менее эффективным, чем выбранный вами уровень сжатия zip.
источник
.bin
и.txt
файлы). Так вы бы предложили просто использоватьscp -r
и без-C
флажка, и безzip
,gzip
нетtar
?