Копирование данных с помощью RSync
Строение команды
Команда для копирования выглядит вот так:
rsync -aHAX --numeric-ids \
--info=progress2 --human-readable \
--partial --partial-dir=.rsync-partial --inplace --preallocate \
--compress --compress-choice=zstd --zl=3 \
/SOURCE/ user@DEST:/TARGET/
Пояснения к ключам:
--info=progress2 - отображает общий прогресс, скорость и ETA
--partial --partial-dir=.rsync-partial - позволяет докачивать большие файлы (например, 100 ГБ).
--inplace --preallocate - резервирование места и меньше фрагментации на приёмной стороне
-aHAX --numeric-ids - копирование прав, атрибутов, жёстких ссылок, ACL и xattrs (нужно sudo и одинаковые UID/GID)
--compress --compress-choice=zstd --zl=3 - сжатие через zstd (поддерживается в rsync ≥ 3.2). Если rsync старой версии, используйте просто -z
/SOURCE/ - путь к исходным данным (например: /var/www/nextcloud/data/)
user@DEST:/TARGET/ - путь к целевой папке на сервере и данные пользователя (пароль будет запрошен при запуске).
Если много уже сжатого контента (видео, архивы), использование --compress может замедлить процесс. В таком случае, уберите этот параметр.
Рекомендации по запуску
Чтобы копирование пережило обрыв SSH-сессии, используйте tmux:
Установка:
apt install tmux -y
Запуск:
tmux
Внутри сессии выполните команду rsync, которая приведена выше. Если SSH-сессия оборвётся, переподключитесь и получите список сессий:
tmux ls
Подключение к нужной сессии выполняется следующей командой:
tmux attach -t 0 # где 0 — номер сессии
No comments to display
No comments to display