rsync

multithreaded parallel rsync

find -type d | xargs -I '{}' -P 10 -n1 rsync -a --no-r remote:path/'{}'/ '{}'/

rsync args:
--no-r No recursive

xargs args:
-P 10 Run up to 10 processes at a time.
-n 1 Use 1 argument per command line.

Производительность glusterfs

rsync на gluster разделе работает очень медленно.
Если подмонтировать через NFS работает быстрее. Но вплоть до версии 3.3 есть баг, при монтировании на сервере, процесс glusterfsd через некоторое время зависает.

Надо обеспечить выполнение rsync на сервере, что бы сетевые задержки не тормозили процесс сканирования файлов.

Native gluster client на дефолтных настройках начинает грузить диски.

В данном случае помогают такие настройки:

performance.write-behind-window-size: 65535
performance.read-ahead: off
performance.cache-size: 1073741824

rsync tips

-n --stats Ничего не изменяет и выводит статистику
--ignore-existing --ignore-non-existing --delete только удалить файлы на приемнике, которых нет на источнике

Копирование нескольких путей:
rsync -av host:file1 :file2 host:file{3,4} /dest/
старый синтаксис
rsync -av host:'dir1/file1 dir2/file2' /dest

файлы помещаются в /dest без сохранения начальных путей, при использовании -R пути сохраняются

rsync incremental backup

mv backup.3 backup.tmp
mv backup.2 backup.3
mv backup.1 backup.2
mv backup.0 backup.1
mv backup.tmp backup.0
cp -al backup.1/. backup.0   #make hard links
rsync -a --delete source_directory/ backup.0/   #rsync always unlinks before overwriting