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

rsync-logo

Сегодня в статье поговорим о многопоточности 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. Ссылки в шапки страницы.
Заранее всем спасибо!!!

RSS

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

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

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

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

Похожие записи

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

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

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