Команды rsync

Полезные команды rsync

Настройка ssh

Пропишите конфиг ssh /root/.ssh/config на клиенте (откуда будете копировать файл)

Host *
	Protocol 2
	KeepAlive yes
	TCPKeepAlive yes
	ServerAliveInterval 5
	ServerAliveCountMax 100
	Compression no
	#CompressionLevel 9
	#ForwardX11 yes
	UseRoaming no

Host server
	Hostname server
	User root
	Port 22

Скопируйте содержимое файла /root/.ssh/id_rsa.pub с клиента на сервер в файл /root/.ssh/authorized_keys

Компрессию нужно выключить. Она грузит процессор.

Если на клиенте нет файла id_rsa.pub, создайте его командой

ssh-keygen

Копирование большого файла

Данная команда скопирует файл из локальной папки на другой сервер, при этом, она проверит целостность скопированного файла.

rsync -a --append-verify --progress ./big.file.zip server:/data/files

Синхронизация папки

Запустите в screen или tmux команду:

time rsync -aSsuh --info=progress2 --numeric-ids --bwlimit=6400 source-folder1/ server:/dest-folder2/

source-folder1 – это откуда
dest-folder2 – это куда
time – выведет сколько времени заняла эта команда

Ключи:
-a – Архив -rlptgoD. Копирование рекурсивное, симлинков, прав и владельца файлов и папок, времени модификации.
-S – оптимизация передачи разреженных файлов, например, состоящих из нулей
-s – защита от пробелов в файле
-u – не обновлять файлы на получателе если они новее
-h – выводить цифры в человеко-читаемом формате
—info=progress2 – Выводит суммарный прогресс
—numeric-ids — Сохранять цифровые ID

Также можно добавить:
-W – копировать файлы целиком
-z – Сжатие
-P – выводить прогресс на экран пофайлово
-B=131072 — Фиксированные блоки для вычисления хэшсуммы
—delete — Удалять файлы в папке назначения, если их нет в исходной папке
—bwlimit=6400 — Ограничение скорости в 10 Mbit/sec
—numeric-ids — Использовать ID владельца файла