Сегодня в статье разберем как можно передавать файлы и директории в несколько потоков при помощи команды Rsync.

Про многопоточность Rsync я уже писал в предыдущей статье.

Там мы рассмотрели пример по передачи файлов в несколько потоков. В данной же статье рассмотрим пример по копированию и передачи директорий и фалов в данных директориях.

Т.е. у нас имеются директория с вложениями как фалов, так и еще поддиректориями со своими файлами. Вот её – родительскую директорию, мы и будем передавать в несколько потоков, тем самым увеличивая скорость передачи по сети.

Приведу сразу готовый пример передачи в несколько потоков:

find -type d | xargs -I '{}' -P 5 -n1 rsync -a --delete /home/old/Foto/'{}'/ /home/old/CloudDisk/'{}'/

Разберем данный пример:

find -type d
  • выводит имена всех директорий.
xargs -I '{}'
  • xargs запускает для каждого файла команду rsync
-P 5
  • количество одновременно запущенных команд (потоков rsync), то есть одновременно будут запущена передача 5-ти файлов. Каждый файл передается отдельно.

Про опции Rsync я писал тут

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

5 1 голос
Рейтинг статьи

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Продолжая пользование настоящим сайтом Вы выражаете своё согласие на обработку Ваших персональных данных (файлов cookie) с использованием трекеров "Google Analytics" и "Yandex.Metrics". Порядок обработки Ваших персональных данных, а также реализуемые требования к их защите, содержатся в Политике конфиденциальности.
Принять