Полезные команды rsync. Копирование файлов и папок через rsync
Настройка ssh
Пропишите конфиг ssh /root/.ssh/config на клиенте (откуда будете копировать файл)
_x000D_Host *_x000D_ Protocol 2_x000D_ KeepAlive yes_x000D_ TCPKeepAlive yes_x000D_ ServerAliveInterval 5_x000D_ ServerAliveCountMax 100_x000D_ Compression no_x000D_ #CompressionLevel 9_x000D_ #ForwardX11 yes_x000D_ UseRoaming no_x000D__x000D_Host server_x000D_ Hostname server_x000D_ User root_x000D_ Port 22 Компрессию нужно выключить. Она грузит процессор.
Вместо server укажите hostname сервера.
Если на клиенте нет файла /root/.ssh/id_rsa.pub, создайте его командой
_x000D_ssh-keygen Пароль указывать необязательно
Скопируйте содержимое файла /root/.ssh/id_rsa.pub с клиента на сервер
_x000D_ssh-copy-id server либо можно скопировать вручную содержимое файла /root/.ssh/id_rsa.pub с клиента и добавить новую строчку в файл на сервере /root/.ssh/authorized_keys
_x000D_cat /root/.ssh/id_rsa.pub В настройках ssh сервера в файле /etc/ssh/sshd_config укажите значение
_x000D_PermitRootLogin prohibit-password Оно позволяет подключаться по root пользователем только по ключу
Копирование большого файла
Данная команда скопирует файл из локальной папки на другой сервер, при этом, она проверит целостность скопированного файла.
_x000D_rsync -a --append-verify --progress ./big.file.zip server:/data/files Синхронизация папки
Запустите в screen или tmux команду:
_x000D_time rsync -aSsuh --info=progress2 --numeric-ids --delete-before --bwlimit=6400 source-folder1/ server:/dest-folder2/ source-folder1 – это откуда
dest-folder2 – это куда
Последний слэш обязателен
time – выведет сколько времени заняла эта команда
Ключи:
-a – Архив -rlptgoD. Копирование рекурсивное, симлинков, прав и владельца файлов и папок, времени модификации.
-S – оптимизация передачи разреженных файлов, например, состоящих из нулей
-s – защита от пробелов в файле
-u – не обновлять файлы на получателе если они новее
-h – выводить цифры в человеко-читаемом формате
—info=progress2 – Выводит суммарный прогресс
—numeric-ids — Сохранять цифровые ID
—delete-before — Удаляет папки, которых нет в источнике
Также можно добавить:
-W – копировать файлы целиком
-z – Сжатие
-P – выводить прогресс на экран пофайлово
-B=131072 — Фиксированные блоки для вычисления хэшсуммы
—delete — Удалять файлы в папке назначения, если их нет в исходной папке
—bwlimit — limit I/O bandwidth; KBytes per second (6400 — Ограничение скорости в 50 Mbit/sec или 6,25 MByte/sec)
—numeric-ids — Использовать ID владельца файла