Rsync что это за программа

Демон резервного копирования Rsync

rsync (англ. remote synchronization) — программа для UNIX-подобных систем, которая эффективно выполняет синхронизацию файлов и каталогов в двух местах (необязательно локальных) с минимизированием трафика, используя кодирование данных при необходимости. Важным отличием rsync от многих других программ/протоколов является то, что зеркалирование осуществляется одним потоком в каждом направлении (а не по одному или несколько потоков на каждый файл). rsync может копировать или отображать содержимое каталога и копировать файлы, опционально используя сжатие и рекурсию. rsync передаёт только изменения файлов, что отражается на производительности программы.

В режиме демона rsync по умолчанию использует TCP-порт 873, синхронизируя файлы по собственному протоколу rsync или через удаленную оболочку RSH или SSH. В последнем случае исполняемый файл клиента rsync должен быть установлен как на локальной, так и на удаленной системах.

Отлично подходит для резервного копирования компьютеров сети в центральное хранилище. В этой статье объясняется, как настроить демон Rsync на маршрутизаторе DD-WRT и подключить к нему клиентские компьютеры в локальной сети.

Configurando o Rsync, um aplicativo para fazer backup dos arquivos local ou externo

rsync совместим с Windows, Mac и Linux.

[edit] Требования

  • Telnet или SSH
  • Настроенная система пакетов Optware
  • Скрипт автозапуска для установленных пакетов Optware
  • Поддержка USB или внешнего хранилища (для хранения резервных копий)
  • Служба Rsyncd
  • Клиентское приложение Rsync (для Windows, Mac или Linux)

Хорошая инструкция по настройке USB-накопителя на форуме.

[edit] Установка

Убедитесь, что система пакетов optware настроена правильно и что у вас есть доступ к ushare.

/opt/bin/ipkg-opt update /opt/bin/ipkg-opt list | grep rsync

Возвращает: rsync — 3.0.4-2 — fast remote file copy program (like rcp)

/opt/bin/ipkg-opt install rsync

[edit] Базовая конфигурация сервера

Создайте каталог на USB-накопителе, например /mnt/drive1/rsync/pc1. Необходим накопитель с большим объемом памяти, поскольку на нём будут храниться резервные копии клиентских компьютеров.

vi /opt/etc/rsyncd.conf

Я не уверен, что это самые безопасные UID и GID, но использование uid = nobody и gid = nogroup вызывает ошибки. А так работает просто отлично.

uid = root gid = root use chroot = yes max connections = 5 syslog facility = local3 pid file = /var/run/rsyncd.pid secrets file = /opt/etc/rsyncd.secrets [pc1] path = /path/to/mass/storage/rsync/pc1 comment = PC1 Rsync read only = no auth users = user1 [pc2] path = /path/to/mass/storage/rsync/pc2 comment = PC2 Rsync read only = no auth users = user2

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

Откройте файл, содержащий список имен пользователей и паролей

vi /opt/etc/rsyncd.secrets

И задайте для каждого профиля имя пользователя и пароль в отдельной строке

RSYNC — Sincronize arquivos local e remotamente


user1:mypassword1 user2:mypassword2

Включить службу Rsync

vi /opt/etc/default/rsync

Изменив RSYNC_ENABLE=false на RSYNC_ENABLE=true

Запустите службу Rsync

/opt/etc/init.d/S57rsyncd start

Проверьте, работает ли она

ps | grep rsync
30081 root 1456 S /opt/bin/rsync —daemon

[edit] Конфигурация клиента: Microsoft Windows

Я обнаружил, что программа DeltaCopy работает довольно быстро и без проблем как Windows-клиент.

Настройка довольно проста. Создайте новый профиль и установите следующие настройки:

  • Profile Name: любое имя профиля
  • Server IP: 192.168.1.1 или любой другой IP-адрес маршрутизатора
  • Virtual Directory Name: pc1 или как вы называли свой профиль в файле конфигурации rsync.conf (название секции вида «[pc1]»)

Проверьте соединение (Test Connection) и добавьте профиль (Add Profile).

Нажмите на имя профиля и нажмите на вкладку аутентификации Authentication Tab.

Введите имя пользователя и пароль, которые вы указали в файле /opt/etc/rsyncd.secrets.

[edit] Конфигурация клиента: Apple macOS

Настройка macOS выполняется легко, так как rsync поставляется со всеми последними версиями системы. Просто используйте rsync, как в системе Linux. Например, чтобы создать резервную копию домашнего каталога для пользователя с именем John, в профиль с названием ‘pc1’:

[edit] Конфигурация клиента: Linux

sudo apt-get install rsync

Вы можете настроить планировщик Cron, чтобы он делал это в ночное время.

[edit] Вопросы или комментарии

Вы можете написать автору статьи, чтобы задать какие-либо вопросы по адресу электронной почты:

undertoe собака chemlab точка com

[edit] Ссылки

Полезные статьи и информация о macOS:

  • Резервное копирование в macOS (англ.)
  • Программы для резервного копирования в macOS (англ.)

Источник: wiki.dd-wrt.com

БЭКАПЛЕНД — РЕЗЕРВНОЕ КОПИРОВАНИЕ ДЛЯ ВСЕХ!

Wiki : Rsync (англ. Remote Synchronization) — программа для UNIX-подобных систем, которая выполняет синхронизацию файлов и каталогов в двух местах с минимизированием трафика, используя кодирование данных при необходимости. Важным отличием rsync от многих других программ/протоколов является то, что зеркалирование осуществляется одним потоком в каждом направлении (а не по одному или несколько потоков на каждый файл). rsync может копировать или отображать содержимое каталога и копировать файлы, опционально используя сжатие и рекурсию.

Rsync является общепризнанным программным обеспечением, которое работает надежно и быстро. Бэкапленд использует его для оптимального механизма создания резервных копий, а так же по причине его массовой распространенности на серверах, что означает, что вы сможете работать с нашей системой без каких-либо настроек на вашей стороне. Но из каждого правила существуют исключения, поэтому ниже мы предлагаем подробную инструкцию как установить и настроить Rsync на серверах с операционными системами Debian, Ubuntu, Centos и FreeBSD.

Проверка:

Проверьте установлен ли rsync:

выполните команду в ssh: whereis rsync если ответом будет /usr/local/bin/rsync или /usr/bin/rsync то rsync у вас есть, вам его устанавливать не нужно.

Так же можете проверить, просто запустив команду в ssh: rsync или /usr/local/bin/rsync или /usr/bin/rsync если будет ответ, а не ошибка, тогда вам его устанавливать не нужно.

Установка:

Описанные далее установка и настройка rsync возможны, только если у Вас есть права root. Если таких прав нет, напишите Вашему системному администратору или в техническую поддержку хостинга с просьбой установить rsync.

Читайте также:
Гранд смета программа для чего

Для FreeBSD: cd /usr/ports/net/rsync
make install

Для Linux Debian и Ubuntu: apt-get install rsync

Для Centos: yum install -y rsync

Настройка:

Настраивать rsync нужно только в одном случае, если Вы хотите, чтобы наша система создавала резервные копии не через SSH, а через демон rsyncd.

Через файл конфигурации настройки rsyncd вы можете:

  • Задать своего пользователя и пароль
  • Разрешить вход к вам только с определенного IP/хоста (наш хост при заказе мы вам высылаем)
  • Разрешить доступ к конкретным директориям и файлам на вашей системе

Настройка rsync для FreeBSD: cd /usr/local/etc/

cоздаем файл приветствия (не обязательно) echo «Hello from rsync server» > rsyncd.motd
echo «Server Adress: My SuperHost 1.1.1.1» >> rsyncd.motd

создаем файл c именем пользователя и паролем echo «backup:ПАРОЛЬ» > rsyncd.scrt
chmod 0600 /usr/local/etc/rsyncd.scrt

где ПАРОЛЬ тот, что мы выдаем вам при создании в панели управления задания на резервное копирование. В дальнейшем вы можете изменить пароль на свой в файле rsyncd.scrt и на сервере хранения резервных копий в файле /var/www/rc-******/data/rsyncd.pass, где rc-****** ваш логин на сервер с бэкапами.

Внимание! Если пароли на вашем сервере и сервере с бэкапами не совпадут, резервные копии создаваться не будут.

Далее создаем основной конфиг rsyncd.conf

1) cd /usr/local/etc/

2) mv rsyncd.conf rsync.original

3)
cat > /usr/local/etc/rsyncd.conf
pid file = /var/run/rsyncd.pid
motd file = /usr/local/etc/rsyncd.motd

uid = root
gid = wheel
max connection = 4

auth users = backup
secrets file = /usr/local/etc/rsyncd.scrt

[root]
path = /
read only = yes
host allow = ssh.bkp177.backupland.com
EOF

4) /usr/local/etc/rc.d/rsyncd restart

Теперь настраиваем так, чтобы после перезагрузки сервера у вас запускался демон rsyncd

Делаем отступ с переносом на следующую строку echo «» >> /etc/rc.conf

Добавлем разрешение запускать при старте echo ‘rsyncd_enable=»YES»‘ >> /etc/rc.conf

Настройка rsync для Linux Debian и Ubuntu:

Находите файл /etc/default/rsync
В нем находите строку:
RSYNC_ENABLE=false
и меняете на:
RSYNC_ENABLE=true

Таким образом мы разрешаем при загрузке сервера запустить демон rsyncd

Далее создадим папку для наших файлов: mkdir /etc/rsync/
cd /etc/rsync/

создаем файл приветствия (не обязательно) echo «Hello from rsync server» > rsyncd.motd
echo «Server Adress: My SuperHost 1.1.1.1» >> rsyncd.motd

создаем файл c именем пользователя и паролем echo «backup:ПАРОЛЬ» > rsyncd.scrt
chmod 0600 /etc/rsync/rsyncd.scrt

где ПАРОЛЬ тот, что мы выдаем вам при создании в панели управления задания на резервное копирование. В дальнейшем вы можете изменить пароль на свой в файле rsyncd.scrt и на сервере хранения резервных копий в файле /var/www/rc-******/data/rsyncd.pass, где rc-****** ваш логин на сервер с бэкапами.

Внимание! Если пароли на вашем сервере и сервере с бэкапами не совпадут, резервные копии создаваться не будут.

Далее создаем основной конфиг rsyncd.conf cd /etc/ Обратите внимание на то, что файл rsyncd.conf должен быть расположен в папке /etc/

mv rsyncd.conf rsyncd.old делаем так на всякий случай, вдруг файл такой уже есть

cat > /etc/rsyncd.conf
pid file = /var/run/rsyncd.pid

motd file = /etc/rsync/rsyncd.motd

uid = root
gid = root
max connection = 4

auth users = backup
secrets file = /etc/rsync/rsyncd.scrt

[root]
path = /
read only = yes
host allow = ssh.bkp177.backupland.com
EOF

Настройка rsync для Centos 6:

Устанавливаем xinetd (нужен для пуска rsync сервера): yum install -y xinetd

Находите файл /etc/xinetd.d/rsync, в нем находите строку:
disable = yes
и меняете на:
disable = no

Перезагружаем сервис xinetd: /etc/init.d/xinetd restart

Добавляем xinetd в автозапуск: chkconfig xinetd on

Конфиг создаем такой же как и для Centos 7 (смотри ниже).

Настройка rsync для Centos 7:

Включаем в автозагрузку systemctl enable rsyncd.service

Запускаем rsyncd демон systemctl start rsyncd.service

Далее создадим папку для наших файлов: mkdir /etc/rsync/
cd /etc/rsync/

создаем файл приветствия (не обязательно) echo «Hello from rsync server» > rsyncd.motd
echo «Server Adress: My SuperHost 1.1.1.1» >> rsyncd.motd

создаем файл c именем пользователя и паролем echo «backup:ПАРОЛЬ» > rsyncd.scrt
chmod 0600 /etc/rsync/rsyncd.scrt

где ПАРОЛЬ тот, что мы выдаем вам при создании в панели управления задания на резервное копирование. В дальнейшем вы можете изменить пароль на свой в файле rsyncd.scrt и на сервере хранения резервных копий в файле /var/www/rc-******/data/rsyncd.pass, где rc-****** ваш логин на сервер с бэкапами.

Внимание! Если пароли на вашем сервере и сервере с бэкапами не совпадут, резервные копии создаваться не будут.

Далее создаем основной конфиг rsyncd.conf

cd /etc/ Обратите внимание на то, что файл rsyncd.conf должен быть расположен в папке /etc/

mv rsyncd.conf rsyncd.old делаем так на всякий случай, вдруг файл такой уже есть.

cat > /etc/rsyncd.conf
pid file = /var/run/rsyncd.pid

motd file = /etc/rsync/rsyncd.motd

uid = root
gid = root
max connection = 4

auth users = backup
secrets file = /etc/rsync/rsyncd.scrt

[bkpl]
path = /
read only = yes
host allow = ssh.bkp177.backupland.com
EOF

Применяем настройки
для Centos 7 systemctl restart rsyncd.service для Centos 6 service xinetd restart

Если у вас на сервере установлен Firewall вам нужно разрешить входящие соединение на порт 873

Описание полей файла конфигурации rsyncd.conf

Текст конфигурации:
pid file = /var/run/rsyncd.pid #pid файл хранящий ID процесса
motd file = /usr/local/etc/rsyncd.motd #файл приветствия
uid = root #работа под правами этого пользователя*
gid = wheel #работа с правами этой группы*
max connection = 4 #кол-во коннектов со стороны сервиса
auth users = backup #логин пользователя для доступа извне
secrets file = /usr/local/etc/rsyncd.scrt #файл с логином и паролем для доступа извне
[bkpl] #секция, в которой описано что можно делать
path = / #Какую папку можно бэкапить
read only = yes #Разрешено только бэкапить, восстановить нельзя будет
host allow = ssh.bkp177.backupland.com #сервер, где будут храниться резервные копии

Внимание! Вместо ssh.bkp177.backupland.com необходимо указать тот хост, который Вы получили при регистрации. Аналогично, путь /usr/local/etc/ зависит от того, какая установлена операционная система.

* Если вы не собираетесь резервировать весь сервер, тогда права root вы можете заменить на права пользователя, файлы которого вы будете бэкапить.

Источник: go.backupland.com

Rsync

Rsync это программа для синхронизации файлов и каталогов с минимизацией трафика.

Rsync может быть запущен в режиме сервера для организации передачи файлов клиентам через порт и в режиме консольной файловой команды.
Порт используемый RSYNC-сервером по умолчанию TCP/873.

Читайте также:
Грм программа что это

Установка

Пакет присутствует в хранилище пакетов debian.
Для установки пакета

  • в командной строке: следует выполнить команду # apt-get install rsync
  • в графическом режиме: воспользоваться специализированной программой управления пакетами

После установки пакет готов к использованию.

Некоторые часто используемые команды

# rsync —daemon — запуск rsync-сервера вручную с файлом конфигурации по умолчанию /etc/rsyncd.conf # /etc/init.d/rsync restart — перезапуск rsync-сервера (при настройке запуска в режим демона) # rsync [options] /source/ /target/ — выполнение синхронизации содержимого каталога target из каталога source

Настройка RSYNC-сервера

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

Для запуска RSYNC-сервера вручную с произвольным файлом конфигурации может быть использована команда

# rsync —daemon —config=FILE

Для включения автозапуска сервера Rsync следует

  • в файл /etc/default/rsync добавить параметры

RSYNC_ENABLE=true где переменная RSYNC_ENABLE может принимать значения: false — запретить запуск сервера rsync, true — запускать самостоятельный сервер rsync inetd — запускать сервер rsync при необходимости из супер-сервера inetd. RSYNC_CONFIG_FILE=/etc/rsyncd.conf если параметр не указан файл конфигурации будет считываться из /etc/rsyncd.conf, кроме тех случаев, когда rsync запускается поверх удаленной оболочки и не от суперпользователя. В этом случае выбирается rsyncd.conf из текущего каталога на удаленной машине (обычно $HOME). RSYNC_OPTS=opts добавление особенных (отличных от устанавливаемых по умолчанию) параметров запуска например, может быть указан адрес и/или порт, на котором следует принимать соединения «—address=192.168.0.10» (по умолчанию — все локальные адреса) «—port=8730» (по умолчанию — 873), чтобы указать на каком порту следует принимать соединения RSYNC_NICE=level изменение приоритета процесса в планировщике задач

  • и перезапустить rsync-сервер.

В файле конфигурации rsyncd.conf могут быть использованы параметры

uid = rsyncd Идентификатор пользователя, от имени которого запускается rsync-сервер. gid = mirror Идентификатор группы, от имени которой запускается rsync-сервер. max connections = 50 Максимальное количество одновременных подключений. read only = yes Установка доступа к ресурсам «только чтение». list = yes Установка разрешения клиентам получать список файлов. Если запретить просмотр списка файлов, то клиенты смогут получить файл только зная его точное имя, syslog facility = local5 Установка уровня отладочных сообщений для syslog. dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz *.rar *.mp3 Установка шаблонов имён файлов, содержимое которых не нужно сжимать при передаче. use chroot = yes Установка изменения корневого каталог rsync-сервера на указанный в path.

Изменение каталога может использоваться для повышения безопасности. outgoing chmod = Fu=rw,g=rw,o=,Du=rwx,g=rx,o= Установка права доступа к отдаваемым файлам. Поскольку протокол rsync позволяет вместе с содержимым файлов передавать права доступа к ним и идентификаторы владельца и группы, можно задать особые права доступа, которые будут заменять реальные права доступа к данному файлу или каталогу при его передаче по сети. [media] В квадратных скобках задаётся имя секции.

Каждая секция обязана иметь собственный параметр path. Дополнительно в ней могут быть переопределены и значения глобальных параметров. path = /media/ comment = media files
Пример файла конфигурации /etc/rsyncd.conf syslog facility=daemon — стартовать в режиме демона pid file=/var/run/rsyncd.pid — с сохранением идентификатора процесса в файле /var/run/rsyncd.pid motd file = /etc/rsync/hello — отвечать клиенту в начале сессии приветствием из файла /etc/rsync/hello. transfer logging = yes log file = /var/log/rsyncd.log — вести протокол переданных клиенту файлов в /var/log/rsyncd.log log format = %t: host %h (%a) %o %f (%l bytes). Total %b bytes — по заданному формату [root] comment = rsync open for root — предоставлен доступ uid = root — от имени пользователя root gid = root — и группы root path = / — с доступом к корневому каталогу в терминах rsync-сервера list = yes — с возможностью его просмотра списка файлов read only = yes — но только для чтения hosts allow = hosts-name — и только с рабочей станции hosts-name (из /etc/hosts) hosts deny = 0.0.0.0/0.0.0.0 dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz — не сжимая при передаче файлы указанных расширений exclude from = /etc/rsync/rsyncd-exclude — и исключая файлы описанные в файле /etc/rsync/exclude

Синтаксис команды RSYNC

Синтаксис команды rsync

# rsync [параметры]

где и — источник и целевой объект Объектами копирования могут быть как файлы, так и папки, находящиеся как в пределах файловой системы, так и удалённо, например на SSH или RSYNC-сервере. [параметры] — необязательные параметры копирования/синхронизации, например -v, —verbose повышение детализации при копировании, например показывать название файлов -a, —archive режим архивации, объединяет несколько ключей -rlptgoD -r, —recursive копирование рекурсивно. просматривая все вложенные файлы и каталоги -l, —links сохранять символические ссылки -p, —perms сохранять права на файлы -t, —times сохранять время изменения файлов -g, —group сохранять группу файлов -o, —owner сохранять владельца файлов (работает только для суперпользователя) —devices сохранять файлы устройств (работает только для суперпользователя) —specials сохранять специальные файлы -D сохранять файлы устройств и специальны файлы, идентично —devices —specials -H, —hard-links сохранять жесткие ссылки -x, —one-file-system не выходить за пределы файловой системы -z, —compress сжимать файлы данных во время передачи —compress-level=NUM явное задание степени сжатия —skip-compress=LIST пропуск сжатия файлов с суффиксом LIST —progress показывать сколько процентов осталось до завершения и скорость передачи —numeric-ids не транслировать имена владельца и группы в цифровые UID и GID, оставить номера как есть —delete удалять файлы в приёмнике, которых уже нет в источнике —delete-before удалять файлы перед началом копирования —delete-during удалять файлы во время копирования —delete-delay удалять файлы после окончания копирования, но искать их во время —delete-after удалять файлы после окончания копирования —delete-excluded удалять файлы включая исключённые —exclude=PATTERN исключать копирование файлов соответствующие маске PATTERN —exclude-from=FILE получить маски исключаемых при копирование файлов из файла FILE —include=PATTERN не исключать копирование файлов соответствующие маске PATTERN —include-from=FILE получить маски неисключаемых при копирование файлов из файла FILE —files-from=FILE получить список копируемых файлов из файла FILE -e ssh использовать при копировании ssh -n, —dry-run пробный режим копирования без изменений —bwlimit=KBPS установка ограничения скорости передачи файлов

Примеры использования

Приняты сокращения в настоящем разделе:

— путь до каталога, подлежащего резервному копированию — путь до папки куда копируются данные

Читайте также:
Carmoderemote что это за программа на Андроид

Синхронизация данных с RSYNC-сервера в целевую папку

Синхронизация двух каталогов файловой системы

# rsync -avsq —delete -b —backup-dir=/modify —suffix=.`date +%Y-%m-%d` / / где -avsq — параметры копирования -b —backup-dir=/modify —suffix=.`date +%Y-%m-%d` — команда сохранять файлы которые изменялись в каталоге с присвоением расширения файлам даты резервного копирования

Показать список файлов без их копирования

# rsync -avn / / — список файлов, которые должны быть скопированы

Создание (только) структуры каталогов (без копирования файлов)

# rsync -avH -f»+ */» -f»- *» / /

Скачивание больших файлов (с докачкой) на неустойчивых линиях

# rsync -avsH —partial —partial-dir=»» / / где -avsH — параметры копирования —partial — установка сохранения даже не полностью скопированных файлов —partial-dir=»» — путь до папки куда сохраняются не полностью скопированные файлы —append-verify — установка проверки существующего файла для синхронизации лишь остатка не скопированного куска

Загрузка файлов с локальной системы на RSYNC-сервер с докачкой

Пример настройки rsyncd.conf на RAYNC сервере [PATH] comment = tmp GW-HOME path = /DEST_PATH/ read only = no uid = nobody gid = nogroup hosts allow = 0.0.0.0/0.0.0.0 а для пути /DEST_PATH/ предоставлены, например права # mkdir /DEST_PATH/ # chmod 777 /DEST_PATH/

Копирование на FTP-сервер

# curlftpfs FTPSERVER:FTPPORT /tmp/ftp/ -o user=FTPUSER:FTPPASSW,allow_other — монтирование FTP-сервера с помощью программы curlftpfs # rsync -rzv —inplace —append —stats —timeout=7200 / / где -rzv — параметры копирования —inplace — обновление существующего файла —append — добавление данных к меньшему файлу —timeout=7200 — задержка для операций ввода-вывода

  • rsync: Копирование только дерева каталогов
  • Бекап файловой системы Linux-сервера с помощью rsync
  • xgu.ru: rsync
  • Ftp transfer the rsync-way

Литература

  • wikipedia.org:Rsync
  • opennet.ru:Rsync
  • Интерактивная система просмотра системных руководств: rsync
  • Интерактивная система просмотра системных руководств (man-ов):rsyncd.conf
  • Полезные рецепты при работе с rsync
  • Backup с помощью rsync
  • Rsync — современный способ синхронизации файлов
  • Настройка резервного копирования с помощью rsync, ssh и cron
  • Rsync: лучшая система резервного копирования
  • IT рабочие заметки: rsync
  • Структура каталогов Debian GNU/Linux
  • Копирование файлов с помщью rsync

Справочная информация

  • 28.04.2010: Rsync: создание статьи википедии, описание установки пакета
  • 17.05.2010: Rsync: добавлено описание примера копирования данных с сервера rsync на локальную машину
  • 13.11.2011: Rsync: актуализация описания, правка внешнего вида
  • 23.03.2013: Rsync: добавлено описание Синтаксиса команды
  • 26.03.2016: Rsync: добавлено описание Настройки сервера Rsync
  • 21.02.2020: Rsync: добавлен пример копирования по FTP-протоколу

Источник: tdkare.ru

Rsync что это за программа

Поскольку утилита rsync работает через ssh, необходимо сгенерировать ключ:

Затем копируем сгенерированный ключ на сервер Backup:

Копирование ключа делается один раз и позволяет не вводить пароль при соединении по SSH. Зайдем на бэкап-сервер с помощью ssh:

Видим что мы зашли на сервер и у нас не спросили пароль 🙂 Так как мы на сервере Backup сервере предлагаю создать директорию backup . Сюда будем сохранять резервные копии файлов с сервера Prod. Возвращаемся обратно на Prod сервер.

cd /root | mkdir backup exit

Метод Sync (инкрементальное сохранение изменений)

При таком методе сохраняются только изменения в целевой директории. Утилита rsync мониторит директорию и если произошли следующие события отправляет изменения на сервер Backup.

  • Если были добавлены новые файлы.
  • Если были произведены изменения в файлах контролируемой директории.
  • Если было удаление файлов в контролируемой директории.

На сервере Prod создадим директорию и в ней файлы, которые будет мониторить утилита rsync:

cd var mkdir www cd www touch 1.html index.html hello.html

Мы перешли в var и там создали директорию www с файлами 1.html , index.html , hello.html .

Почти готово 🙂 Запускаем rsync в режиме синхронизации изменений:

Видим что была отправка файлов на сервер Backup. Теперь внесем изменения. Удалим файл hello.html и создадим новый файл 2.html :

rm -r hello.html touch 2.html

Повторно запустим rsync:

sending incremental file list deleting hello.html ./ 2.html 0 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=1/4) sent 150 bytes received 52 bytes 134.67 bytes/sec total size is 0 speedup is 0.00

Видим что rsync удалил в папке backup файл hello.html и скопировал туда файл 2.html . Предлагаю создать исполняемый файл, в дальнейшем он нам понадобится для автоматизации бекапа:

nano sync.sh

Теперь нет необходимости запоминать длинную команду rsync, а достаточно запустить sync.sh (не забудьте сделать его исполняемым с помощью команды chmod):

sh sync.sh

Метод Snapshot (создание полной копии указанной директории)

У метода инкрементного бэкапа есть недостаток. Если вы, к примеру, ошибочно удалите файлы, то удаление также произойдет и в директории backup . Файлы будут утеряны. Для решения проблемы можно реализовать следующий алгоритм:

  • Делаем инкрементный backup каждый день утром в 09:30.
  • Делаем полный backup (Snapshot) еженедельно в понедельник 10:30.

Snapshot кладем в предварительно созданную директорию snapshot на сервере Backup. Создаем snapshot.sh:

nano snapshot.sh
sh snapshot.sh
sending incremental file list created directory /root/backup/snapshot/2021-09-01-t-16-44-29 ./ 1.html 2.html index.html snapshot.sh sync.sh sent 577 bytes received 180 bytes 1,514.00 bytes/sec total size is 213 speedup is 0.28

Из вывода результата исполнения snapshot.sh видим, что была сделана и отправлена полная копия сохраняемой директории в backup с именем текущей даты и времени.

Автоматизируем задачу копирования файлов

Автоматизируем наш backup. Мы не зря создавали исполняемые файлы sync.sh и snapshot.sh. Теперь нужно создать в планировщике Cron задание:

crontab -e
# Ежедневное копирование изменений в 09:30 30 9 * * * /root/sync.sh # Еженедельное копирование полной копии в Понедельник 10:30 30 10 * * 1 /root/snapshot.sh

Готово! В планировщике два задания которые будут с помощью утилиты rsync копировать ежедневные изменении и раз в неделю делать полную копию.

Чтобы ускорить работу системы, выберите провайдера инфраструктуры, который наилучшим образом соответствует требованиям вашего ресурса: объем накопителя, процессор и количество ядер, объем оперативки и ежемесячного трафика, наличие резервного копирования, быстрая техническая поддержка. Мы тестировали серверы, любезно предоставленные компанией Selectel.

Для резервного копирования с одного рабочего сервера отдельная физическая машина может показаться избыточной, если проект не особенно крупный. Такая конфигурация скорее подойдет для нескольких серверов на проде (или одного, если он обслуживает большой проект). Selectel предлагает серверы, оснащенные 4-768 ГБ ОЗУ, 2-72 ядрами ЦП, а также с возможностью подключить графический ускоритель и выбрать в качестве сервера даже Raspberry Pi 4 (4/64 ГБ) и Mac mini для iOS-разработчиков.

Источник: proglib.io

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru