Инструменты пользователя

Инструменты сайта


wiki:technical:soft:rsync

Это старая версия документа!


Rsync

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

Установка

На примере Debian:

# aptitude install rsync

Копирование

На сервере-приемнике правим /etc/default/rsync. Меняем в строке «RSYNC_ENABLE=false» false на true. Правим (создаем) /etc/rsyncd.conf. Прописываем туда:

log file=/var/log/rsyncd
pid file=/var/run/rsyncd.pid
socket options = SO_KEEPALIVE

и запускаем rsync:

# /etc/init.d/rsync start

rsync-сервер к приему данных готов.

На сервере-передатчике запускаем rsync:

# rsync -e ssh --progress -lzuogthvr --compress-level=9 --delete-after /mydir/sourcedir username@remoteserver:/backupdir/

где:

  • -e ssh - Использовать SSH для связи.
  • ‑‑progress - Показывать прогресс копирования.
  • -l - Пересоздавать synlinks, т.е. на удаленном сервере будут созданы симлинки, ссылающиеся на нужное место. Даже если на удаленном сервере этого места не существует - лучше делать так, т.к. при возвращении резервной копии на этом компьютере симлинки станут рабочими.
  • -z - Использовать сжатие (для экономии трафика). Если много сжимать - копирование может занять много времени. Можно отказаться от этой опции в случае недостаточной мощности процессора.
  • -u - Режим обновления, т.е. инкрементальное копирование. rsync скопирует только те файлы, которые еще не существуют на удаленном сервере или которые были изменены.
  • -o - Установить пользователя-владельца скопированного файла таким-же, как и у оригинала.
  • -g - Установить группу-владельца скопированного файла таким-же, как и у оригинала.
  • -t - Установить время создания/модификации файла на удаленном сервере такое-же, как и у оригинала. Опция обязательна для инкрементального копирования - иначе время файла на удаленном компьютере установится текущим.
  • -h - Вывод информации на экран в удобном для человека виде (human-readable).
  • -v - Verbose-вывод (т.е. расширенная информация в процессе копирования).
  • -r - Рекурсивное копирование (т.е. все, что находится по указанному пути, включая поддиректории).
  • ‑‑compress-level=9 - Уровень сжатия (0-9)
  • ‑‑delete-after - Изменяет поведение утилиты. По умолчанию, утилита сначала удаляет целевой файл, если он существует, и только потом копирует его замену, что полезно при передаче больших файлов на сервер, на котором слабо со свободным местом. Если же указать ‑‑delete-after - то сначала в temp-директорию будет скачан новый файл, а уже потом будет произведено удаление старого.
  • /mydir/sourcedir - директория, которая будет скопирована.
  • username - имя пользователя для подключения на удаленный сервер.
  • remoteserver - ip-адрес или hostname удаленного сервера.
  • /backupdir/ - Директория, в которую будет положена копируемая папка (должна существовать).

Восстановление

Обратно скопировать всю директорию (т.е. восстановить из резервной копии) можно так:

# rsync -e ssh --progress -lzuogthvr --compress-level=9 --delete-after username@remoteserver:/backupdir/ /mydir/sourcedir

Как видно, мы просто поменяли местами последние два параметра.

wiki/technical/soft/rsync.1401814030.txt.gz · Последнее изменение: 2017/04/07 19:50 (внешнее изменение)