Сегодня в статье поговорим о многопоточности 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-ленты на главную страницу этого сайта не поддерживается, так как это может привести к зацикливанию, замедляющему работу вашего сайта. Попробуйте использовать другой блок, например блок Последние записи, для отображения записей сайта.