Команды 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 владельца файла