Intereting Posts
Мышь не может взаимодействовать с приложениями Почему Unix устанавливает флаг исполняемого файла для файловых систем FAT? Как зарегистрировать приложение в KDE? Как печатать даты между двумя разными датами Как ограничить MAX MIN длиной строки? Безгласная компиляция и загрузка программ Arduino на платформе Armhf Проверка того, нажата ли конкретная клавиша в сценарии оболочки Как именно `if $ cmd; затем $ cmd; fi` отличаются от `$ cmd && $ cmd`? Попытка SSH на Android-телефон, но соединение закрыто как сделать резервную копию моей файловой системы linuxmint и исключить папку / media? Как найти все соответствия регулярному выражению в строке Где будут настроены дополнительные IP-адреса, назначенные сетевому адаптеру для CentOS 4.4? Является ли «безопасным» отключить IPv6 для ускорения работы Firefox? Могу ли я изменить владельца туннеля после его создания? Как скомпилировать исходный код в ядре?

scp-файлы из определенной папки параллельно

Я хочу, чтобы scp-файлы с machineA в моем machineB и именно так я это делаю. Я копирую кучу файлов один за другим из primary папки machineA в primary папку machineB и secondary папку machineA во secondary папку machineB .

 trinity@machineB:~$ scp trinity@machineA:/data01/primary/* /data01/primary/ trinity@machineB:~$ scp trinity@machineA:/data02/secondary/* /data02/secondary/ 

Есть ли способ, по которому я могу копировать несколько файлов параллельно? Как пять файлов за раз из папки? Итак, вместо копирования одного файла за раз, я хочу скопировать пять файлов из первичных или вторичных папок соответственно?

В основном я хочу скопировать все, что есть в первичных и вторичных папках machineB в machineB параллельно.

У меня также есть GNU Parallel, установленный на моем ящике, если я могу это использовать. Я попробовал команду ниже, но она не работает. Я ожидал, что он должен копировать 5 файлов параллельно, пока все не будет скопировано из этой папки.

 parallel -j 5 scp trinity@machineA:/data01/primary/* /data01/primary/ 

Что-то не так с моим параллельным синтаксисом? Каков наилучший способ, которым я могу копировать пять файлов параллельно из удаленной папки, пока все не будет скопировано из нее?

Почему вы думаете, что параллельное соединение ускорит его? SCP – очень простой инструмент для переноса нескольких небольших файлов, ничего для пропускной способности и производительности. Запуск его из более параллельных процессов может сделать его немного быстрее, но не значительно. Что вы можете сделать по-другому:

  • Используйте sftp для повышения пропускной способности и более умного копирования (должно быть достаточно), например, используя -r
  • Используйте ControlMaster чтобы избавиться от накладных расходов на параллельные TCP-соединения
  • Используйте правильные параметры для parallel

Я бы начал с sftp :

 sftp -r trinity@machineA:/data01/primary/ /data01/primary/ 

Вам необходимо, чтобы расширение было на удаленной стороне:

 ssh machineA 'parallel -j 5 scp {} machineB:/data01/primary/ ::: /data01/primary/*'