Пост

Копирования (синхронизация) данных с удаленного сервера на сетевое хранилище (NAS)

rsync - утилита для дифференциального копирования и синхронизации файлов и каталогов на Unix-подобных операционных системах. Она позволяет создавать резервные копии файлов, реплицировать данные между компьютерами, а также обеспечивать синхронизацию файлов между локальным и удаленным хранилищами.

Необходимо было разово выполнить процедуру резервного копирования данных с удаленного сервера на сетевое хранилище в локальной сети

Исходные данные:

  • ip-адрес сетевого хранилища: 192.168.0.17
  • ip-адрес удаленного сервера: 8.8.8.8

Подключаемся по ssh к сетевому хранилищу

Оттуда запускаем команду синхронизации

1
$ rsync -rltvzu --progress [email protected]:/home/data/ /volume1/Backup/data

где:

  • -r - рекурсивный режим (копирование всех подпапок и файлов в них)
  • -l - копировать символические ссылки «как есть», то есть rsync не будет следовать по ним, обращаясь к файлам
  • -t - обновлять время модификации файла на приёмной стороне
  • -v - подробные вывод операций
  • -z - компрессия данных при передаче
  • -u - режим обновления, пропускаются файлы на получателе, имеющие более позднюю дату модификации, чем в источнике
  • /home/data/ - соержимое каталога, который мы копируем (!!! обратный слэш в конце)
  • /volume1/Backup/data - каталог, куда будут скопированы данные

В команде rsync отсутствует ключ -a, так как в него входят другие ключи, из-за которых синхронизация не выполнялась

Основные ключи команды

  • -a, режим архивирования, включает ключи -rlptgoD;
  • -r, каталоги копируются рекурсивно;
  • -l, копировать символические ссылки «как есть», то есть rsync не будет следовать по ним, обращаясь к файлам;
  • -p, сохранение прав доступа к файлам;
  • -t, сохранение времени модификации файлов;
  • -g, -o, сохранение владельца и группы файла;
  • -D, сохранение файлов устройств и специальных файлов;
  • -u, режим обновления, пропускаются файлы на получателе, имеющие более позднюю дату модификации, чем в источнике;
  • -v, выводит имена копируемых файлов;
  • -q, не выводит сообщения об ошибках;
  • -z, включение режим сжатия;
  • -P, отображение прогресса при копировании;
  • , проверка файлов по контрольной сумме, а по размеру и дате модификации. Дополнительная нагрузка на процессор, сильно увеличивает время синхронизации;
  • --ignore-errors, продолжение копирования и удаления даже после появления ошибок;
  • --max-delete, максимальное число удаляемых за один раз файлов и каталогов;
  • --files-from=FILE, задается список файлов и директорий для копирования в файле;
  • -e ssh, использование при копировании ssh;
  • --bwlimit=KBPS, ограничение скорости копирования.
Авторский пост защищен лицензией CC BY 4.0 .

© IT Draft. Некоторые права защищены.