Многопоточный 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 я писал тут

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

Если есть вопросы, то пишем в комментариях.

Также можете помочь проекту, заранее всем СПАСИБО!!!

.

RSS

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

5 1 vote
Рейтинг статьи
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 комментариев
Inline Feedbacks
Просмотреть все комментарии