Многопоточный Rsync | синхронизируем файлы

Сегодня в статье поговорим о многопоточности 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 я писал тут
Если нужно передавать в несколько потоков директории и их подкаталоги вмести с файлами в этих директориях, то как это организовать я писал ТУТ.
Если есть вопросы, то пишем в комментариях.
Также можете вступить в Телеграм канал, ВКонтакте или подписаться на Twitter. Ссылки в шапке страницы.
Заранее всем спасибо!!!