Сегодня в статье разберем как можно передавать файлы и директории в несколько потоков при помощи команды Rsync.
Про многопоточность Rsync я уже писал в предыдущей статье.
Там мы рассмотрели пример по передачи файлов в несколько потоков. В данной же статье рассмотрим пример по копированию и передачи директорий и фалов в данных директориях.
Т.е. у нас имеются директория с вложениями как фалов, так и еще поддиректориями со своими файлами. Вот её – родительскую директорию, мы и будем передавать в несколько потоков, тем самым увеличивая скорость передачи по сети.
Приведу сразу готовый пример передачи в несколько потоков:
find -type d | xargs -I '{}' -P 5 -n1 rsync -a --delete /home/old/Foto/'{}'/ /home/old/CloudDisk/'{}'/
Разберем данный пример:
find -type d
- выводит имена всех директорий.
xargs -I '{}'
- xargs запускает для каждого файла команду rsync
-P 5
- количество одновременно запущенных команд (потоков rsync), то есть одновременно будут запущена передача 5-ти файлов. Каждый файл передается отдельно.
Про опции Rsync я писал тут