В настоящее время у меня есть два сервера CentOS. Мне нужно знать, как и каким самым быстрым способом было бы «скопировать» каталог с изображениями и обработать его?
Это самый быстрый способ, который я только что предложил, потому что tarring занимает вечно ... Я выполнил команду:
tar cvf imagesbackup.tar images
И я собирался просто проверить это.
Дайте мне знать, если есть более быстрый путь. У меня есть удаленный / SSH доступ к обеим машинам.
file-transfer
scp
tar
Андрей Мод
источник
источник
Ответы:
Вместо того, чтобы использовать tar для записи на локальный диск, вы можете писать напрямую на удаленный сервер по сети, используя ssh.
Любая строка, которая следует за вашей командой "ssh", будет запущена на удаленном сервере вместо интерактивного входа. Вы можете направлять ввод / вывод в и из этих удаленных команд через SSH, как если бы они были локальными. Помещение команды в кавычки позволяет избежать путаницы, особенно при использовании перенаправления.
Или вы можете извлечь файл tar непосредственно на другом сервере:
Обратите внимание на редко используемый
-C
параметр. Это означает «сначала перейдите в этот каталог, прежде чем что-либо делать».Или, возможно, вы хотите «вытащить» с сервера назначения:
Обратите внимание, что
<(cmd)
конструкция является новой для bash и не работает на старых системах. Он запускает программу и отправляет вывод в канал и подставляет этот канал в команду, как если бы это был файл.Я мог бы просто написать вышеизложенное следующим образом:
Или следующим образом:
Или вы можете избавить себя от горя и просто использовать rsync:
Наконец, помните, что сжатие данных перед передачей уменьшит вашу пропускную способность, но при очень быстром соединении это может фактически сделать операцию более длительной . Это связано с тем, что ваш компьютер может быть не в состоянии сжимать достаточно быстро, чтобы не отставать: если сжатие 100 МБ занимает больше времени, чем требуется для отправки 100 МБ, то быстрее отправить его без сжатия.
С другой стороны, вы можете захотеть использовать pzip для gzip самостоятельно (вместо использования опции -z), чтобы вы могли указать уровень сжатия. По моему опыту, при быстрых сетевых подключениях со сжимаемыми данными использование gzip на уровне 2 или 3 (по умолчанию 6) дает наилучшую общую пропускную способность в большинстве случаев. Вот так:
источник
Я был бы соблазн rsync это по себе - это делает сжатие и хорошо обрабатывает потерю связи.
источник
Если вы просто смените их и ничего больше, это потратит кучу времени с минимальным приростом скорости.
Поэтому простое копирование файлов с помощью переключателей cvf будет эффективно стоить времени, необходимого для чтения всех изображений 55 ГБ и их записи на диск. (Фактически, это будет потрачено еще больше времени, поскольку это приведет к значительным накладным расходам).
Здесь вы получаете только одно преимущество: уменьшаются накладные расходы на загрузку множества файлов. Вы можете получить более быстрое время передачи, если сжимаете изображения (но, поскольку я считаю, что они уже находятся в сжатом формате, это не сильно поможет). Просто больше трата вычислительного времени.
Самый большой недостаток передачи огромного архива tar по проводам заключается в том, что если что-то пойдет не так, это может означать, что вам придется начинать все сначала.
Я бы использовал этот способ:
На новом сервере
А потом просто
diff
. А поскольку scp поддерживает сжатие на лету, нет необходимости в отдельных архивах.редактировать
Я буду хранить информацию MD5, так как она была полезна для ОП. Но один комментарий поразил меня новым пониманием. Поэтому немного поиска предоставило эту полезную информацию. Обратите внимание, что предметом здесь является SFTP, а не SCP .
источник
В дополнение к предложению Пейси md5sum, я бы использовал следующее:
По месту назначения:
nc -w5 -l -p 4567 | tar -xvf -
Тогда по источнику:
tar -cvf - /path/to/source/ | nc -w5 destinationserver 4567
Это все еще tar / untar, и там нет шифрования, но оно напрямую на другой сервер. Запустите их обоих в тандеме (
-w5
дает вам 5 секунд отсрочки) и наблюдайте за ходом. Если пропускная способность ограничена, добавьте -z к tar на обоих концах.источник
Одно замечание - не все хосты имеют rsync и могут иметь разные версии tar. По этой причине можно рекомендовать в качестве первого порта вызова использование часто игнорируемого cpio.
Вы можете использовать cpio over ssh для произвольной репликации структур файлов / каталогов между хостами. Таким образом, вы получаете более точный контроль над тем, что отправляется, если вы видите, что вам нужно «кормить» cpio, nom-nom. Кроме того, он более переносим для аргументов, cpio мало что меняет - это важный момент, если вы присматриваете за несколькими хостами в гетерогенной среде.
Пример копирования / экспорта / home и его подкаталогов на удаленный хост:
Выше будет скопировать содержимое / export / home и любых его подкаталогов в / export / home на удаленном хосте.
Надеюсь это поможет.
источник
Если у вас есть доступ по SSH, у вас есть доступ rsync.
или же
Если вы получаете сообщение об ошибке типа «rsync error: некоторые файлы не могут быть переданы (код 23) на main.c (977) [sender = 2.6.9]», проверьте вашего пользователя и группы между серверами; Вы можете иметь несоответствие.
Используйте опцию rsync "-z", если вы хотите, чтобы rsync сжимал передачу. Эта опция будет использовать больше ресурсов процессора, но меньше пропускной способности, так что имейте это в виду.
Есть опция «--progress», которая даст вам переведенный процент, что неплохо, если вам нравятся подобные вещи.
источник
Находятся ли они в общей сети, а не для передачи файлов через Интернет? NFS или FTP могут быть намного быстрее, чем издержки SCP, хотя вы потеряете шифрование во время передачи.
источник
Или вы всегда можете использовать смоляные трубы:
'j' = bzip2, вы можете использовать 'z' для gzip или --lzma, если ваш tar поддерживает это.
источник