Сегодня в статье поговорим о многопоточности Rsync. Как известно, RSYNC из “коробки” работает всего в один поток. Это конечно вызывает неудобство при передачи файлов. Но при правильной настройке данной утилиты мы можем добиться многопоточности, тем самым увеличивая нашу скорость передачи.

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

ls -p | grep -v / | xargs -I '{}' -P 5 -n1 rsync -av --exclude="lost+found" --no-links  /home/myuser/files/'{}' root@myserver:/backup/

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

ls -p | grep -v /
  • выводит имена только файлов в каталоге, каждое имя с новой строки, без дополнительной информации.

Обратите внимание на ‘/’ в конце путей — это важный момент.

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

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

Если нужно передавать в несколько потоков директории и их подкаталоги вмести с файлами в этих директориях, то как это организовать я писал ТУТ.

[endtxt]

RSS

Добавление RSS-ленты на главную страницу этого сайта не поддерживается, так как это может привести к зацикливанию, замедляющему работу вашего сайта. Попробуйте использовать другой блок, например блок Последние записи, для отображения записей сайта.

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

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

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

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

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