Rsync centos 7 настройка

Обновлено: 05.07.2024

Centos7 build Rsync + inotify удаленная синхронизация (подробно)

  1. Настроим источник резервного копирования rsync
  2. Будет использоваться удаленное резервное копирование нисходящего и восходящего потоков rsync
  3. Освойте использование inotify + rsync fact backup

1. Настройте исходный сервер rsync.

1.1 Что такое rsync?
rsync (удаленная синхронизация, удаленная синхронизация), это инструмент быстрого резервного копирования с открытым исходным кодом, который может зеркалировать и синхронизировать все дерево каталогов между различными хостами, поддерживает инкрементное резервное копирование и поддерживает ссылки и разрешения. Кроме того, он использует оптимизированный алгоритм синхронизации и выполняет сжатие перед передачей, поэтому он очень подходит для таких приложений, как удаленное резервное копирование и зеркальный сервер.

Эксперимент начался:
Среда:

Имя хоста источника синхронизации: 101 (хост A) IP:192.168.10.101 Система: Centos7.3
Имя хоста инициатора: 102 (хост B) IP:192.168.10.102 Система: Centos7.3
Хостинг резервной учетной записи: демонстрация Пароль: demo123. Место резервного копирования: / Демо
Резервная учетная запись хоста B: демонстрация Пароль: demo123. Место резервного копирования: / D
Имя общего модуля:
Demo

Сначала отключите брандмауэр и механизм безопасности:
systemctl stop firewalld
systemctl disable firewalld
setenforce 0

1. Создайте /etc/rsyncd.conf
файл конфигурации

По соображениям безопасности лучше всего разрешить синхронизацию только для чтения для источников синхронизации rsync. Кроме того, синхронизация может быть анонимной, если auth users с secrts file Просто удалите элемент конфигурации

2. Создайте резервную копию файла данных аккаунта.
Один пользователь в строке, имя пользователя и пароль разделяются двоеточием, имя пользователя: demo Пароль: demo123. (Нет необходимости создавать системного пользователя с таким же именем.) Поскольку файлы хранятся в виде обычного текста, установите соответствующие разрешения для файлов.

Установите права на чтение /etc/rsyncd_user.db

3. Запустите служебную программу rsync.
rsync --daemon

Чтобы закрыть, вы можете использовать kill $(cat /var/run/rsyncd.pid) команда

Проверьте, слушает ли порт


2. Используйте инструмент резервного копирования rsync.

(1) Основное использование Rsync:

Это то же самое, что и большинство программ резервного копирования, укажите исходное местоположение, целевое местоположение, где -r Параметры похожи на cp Команда, что означает рекурсию всего дерева каталогов.

(2) Метод представления источника конфигурации

Есть два способа представить ресурсы источника синхронизации Rsync:

2.1 Примеры операций резервного копирования

Выполните следующие операции, чтобы получить доступ к общему модулю Demo на исходном сервере и загрузить его на локальный (хост B). /D Под содержанием
Щелкните операцию на узле B

Мы также можем дополнительно настроить функции, которые мы хотим, например, выполнять синхронизацию каждые десять секунд, задачи синхронизации могут быть переданы Crond Услуга завершена, чтобы больше не нужно было вручную вводить пароль во время процесса синхронизации, поэтому нам нужно создать файл паролей, сохранить Демо (Пользователь) Пароль, например: /etc/server.pass , Используйте параметры при выполнении синхронизации rsync --password-file=/etc/server.pass Просто укажите:

1. Создайте файл паролей: vim /etc/server.pass Напишите пароль внутри (demo123.)
2. Разрешите ему chmod 600 /etc/server.pass
3. Укажите расписание задачи (запускать каждые десять секунд): crontab -e

Crontab

4. Просмотрите задачи Crontab: crontab -l

5. Перезапустите Crond: systemctl restart crond

 1

  1. Получите несколько файлов в папке / Demo хоста A, например echo "Hello,World" > /Demo/Hello2
  2. Проверяйте ситуацию в каталоге / D хоста B каждые 10 секунд и смотрите, есть ли лишний файл Hello2

3. Настройте синхронизацию восходящего и нисходящего каналов inotify + rsync в реальном времени.

Ядро Linux предоставляется с версии 2.6.13. интерфейс уведомлений inotify , Используется для отслеживания различных изменений в файловой системе, таких как файл Доступ, удаление, перемещение, изменение Используя этот механизм, вы можете легко реализовать сигнализацию движения файлов, инкрементное резервное копирование и внести соответствующие изменения в каталоги или файлы.

inotify


1. Измените параметры на исходном сервере и перезапустите службу rsync (сервер A).

2. Установите inotify-tools (Сервер B)

Загрузите исходный пакет inotify на хост B, а затем разархивируйте исходный пакет.
tar zxvf inotify-tools-3.14.tar.gz

cd переключитесь на путь к распакованному исходному пакету, чтобы настроить исходный пакет


Если в процессе настройки возникают следующие ошибки, вам необходимо сначала установить компилятор gcc, а затем перенастроить

установить gcc

yum -y install gcc

3. Скомпилируйте и установите

make && make install

3. Возьмите в качестве примера мониторинг локального диска / папки D, затем откройте другой терминал, добавьте, удалите и переместите файлы в каталоге и проследите за выводом на экран (хост B):

inotifywait -mrq -e modify,create,move,delete /D

-e используется для указания тех событий для мониторинга

-m означает непрерывный мониторинг

-q означает упрощенную выводимую информацию

-r означает рекурсию всего каталога

5

/ D D каталог

PS: inotifywait может отслеживать различные события, такие как изменение (изменение), создание (создание), удаление (удаление), перемещение (перемещение), attrib (изменение атрибута) и т.д .; дополнительную информацию см. в руководстве пользователя.

4. Напишите сценарий для запуска сценария синхронизации.
vim /opt/inotify_rsync.sh
Добавить:

Установите соответствующие разрешения:

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

Фантастический

Для достижения синхронизации файлов в реальном времени между хостом A и хостом B, то есть, если сервер A создает файл Hello, то на хосте B будет файл Hello. В то же время, если файл Hello удален на хосте B, то Hello на хосте A также будет Удалите, тогда вам также необходимо построить службу Rsync на хосте B

Вы можете напрямую передать файл /etc/rsync.conf с хоста A на хост B через scp

Измените файл конфигурации хоста B

uid = nobody
gid = nobody
use chroot = yes
address = 192.168.10.102
port 837
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
hosts allow = 192.168.10.101
[Demo]
path = /D
read only = no
dont compress = *.gz *.bz2 *.taz *.zip *.rar *.z
auth users = demo
secrets file = /etc/rsyncd_users.db

3. Создайте пользовательские файлы (здесь не обременительно, не забудьте установить 600 разрешений)
4. Установите каталог резервного копирования / D / Permission 777
5. Создайте пароль для хоста B на хосте A (здесь не обременительно, не забудьте установить 600 разрешений).
6. Установите синхронизированные задачи на сервере A и регулярно синхронизируйте данные на сервере B (здесь нет необходимости).

На данный момент он достиг Сервер A создает файл Hello, тогда он будет и на хосте B. В то же время, если файл Hello будет удален на хосте B, то Hello на хосте A также будет удален. Если на сервере A нет данных, он будет автоматически синхронизирован с Сервер Эффект от письмаНастроить inotify + rsync восходящую и нисходящую синхронизацию в реальном времени, вторая половинаЗдесь почти 11 часов вечера, и мое мышление почему-то изменилось.Не ясно, Если у вас есть какие-то неясные моменты, прокомментируйте ниже, я отвечу на них один за другим и снова отредактирую документ, когда у меня появится четкое представление

Интеллектуальная рекомендация

совместный запрос mysql с тремя таблицами (таблица сотрудников, таблица отделов, таблица зарплат)

1. Краткое изложение проблемы: (внизу есть инструкция по созданию таблицы, копирование можно непосредственно практиковать с помощью (mysql)) Найдите отделы, в которых есть хотя бы один сотрудник. Отоб.


[Загрузчик классов обучения JVM] Третий день пользовательского контента, связанного с загрузчиком классов


IP, сеанс и cookie

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 << EOF >> /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

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 << EOF >> /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

Настройка 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 << EOF >> /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

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

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

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

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

Rsync можно использовать для зеркального отображения данных, инкрементного резервного копирования, копирования файлов между системами, а также в качестве замены команд scp , sftp и cp .

В этой статье объясняется, как использовать rsync на практических примерах и подробных объяснениях наиболее распространенных параметров rsync .

Установка Rsync

Утилита rsync предустановлена в большинстве дистрибутивов Linux и macOS. Если в вашей системе не установлен rsync , вы можете легко установить его с помощью диспетчера пакетов вашего дистрибутива.

Установите Rsync в Ubuntu и Debian

Установите Rsync на CentOS и Fedora

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

Прежде чем перейти к использованию команды rsync , давайте начнем с обзора основного синтаксиса.

Выражения утилиты rsync имеют следующую форму:

rsync предоставляет ряд параметров, управляющих поведением команды. Наиболее широко используемые варианты:

Базовое использование Rsync

Пользователь, выполняющий команду, должен иметь разрешения на чтение в исходном местоположении и разрешения на запись в месте назначения.

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

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

Если целевой каталог не существует, rsync создаст его.

Стоит отметить, что rsync разному обрабатывает исходные каталоги с помощью завершающей косой черты ( / ). Если исходный каталог имеет косую черту в конце, команда скопирует только содержимое каталога в целевой каталог. Если косая черта в конце опущена, rsync копирует исходный каталог в целевой каталог.

Использование rsync для синхронизации данных с / на удаленную машину

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

В следующем примере мы переносим каталог с локального компьютера на удаленный:

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

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

Если SSH на удаленном хосте прослушивает порт, отличный от порта по умолчанию 22, укажите порт с помощью параметра -e :

При передаче больших объемов данных рекомендуется запускать команду rsync внутри сеанса экрана или использовать параметр -P :

Исключить файлы и каталоги

При исключении файлов или каталогов необходимо использовать их относительные пути к исходному местоположению.

В следующем примере показано, как исключить node_modules и tmp :

Выводы

Мы показали вам, как использовать Rsync для копирования и синхронизации файлов и каталогов. Еще больше информации о Rsync можно найти на странице руководства пользователя Rsync .


Если Вы используете RedHat/CentOS/Fedora:

Если Вы используете Debian/Ubuntu/Linux Mint:

Опции в rsync.

Некоторые общие опции используемые в Rsync:

-v: подробный вывод;
-r: копирует данные рекурсивно (но не сохраняют временные метки и разрешение при передаче данных);
-a: archive mode, позволяет копировании файлов рекурсивно, и это также сохраняет символические ссылки, права доступа к файлам, пользовательские и групповые пермишены и метки;
-z: сжимать данные файлов;
-h: выходит цифры в формате нормальном для чтения.

Предоставлю весь список опций.

rsync can also be run as a daemon, in which case the following options are accepted:

Синтаксис

Доступ через удаленные оболочки (PULL):

Доступ черезудаленные оболочки (PUSH):

Доступ через демона Rsync (PULL):

Доступ через демона Rsync (PUSH):

Используйте только один аргумент с SRC и не аргумент DEST будет перечислять исходные файлы вместо копирования.

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

1. Локальное копирование между папками

Эта команда будет синхронизировать содержимое your_dir_1 в your_dir_2 при любых изменениях.Если Rsync находит файл, который был изменен, создан или удален в your_dir_1 , он будет отражать те же изменения в your_dir_2.

Есть много различных переключателей, которые можно использовать для Rsync, чтобы персонализировать ее к конкретным потребностям. Вот некоторые ключи Rsync чтобы сделать резервные копии:

2. Копировать / Синхронизировать каталог на локальном компьютере

Следующая команда будет передавать или синхронизировать все файлы из одной директории в другую директорию, в той же машине. Здесь, в этом примере, /root/my_rpmpkgs содержит некоторые файлы пакетов и вы хотите выполнить копирования в /tmp/my_backups/

3. Использование Rsync для внешних резервных копий

Эта команда поможет вам синхронизировать удаленный каталог на локальный ПК. Здесь, в этом примере, каталог /home/captain/my_rpmpkgs который находится на удаленном сервере копируется в вашем локальном компьютере в /tmp/my_myrpmss:

Автоматическое резервное копирование сRSYNC.

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

Следующая команда запустит команду Rsync каждый день в 10 вечера:

Можно написать небольшой скрипт и засунуть его тоже в крон на выполнение:

И после чего уже вставить данный скрипт в крон на выполнение.

4. Rsync через SSH

С Rsync, мы можем использовать SSH (Secure Shell) для передачи данных, используя протокол SSH при передаче наших данных вы можете быть обеспечены, что ваши данные передаются через защищенное соединение с шифрованием, так что никто не может считать ваши данные.

Кроме того, когда мы используем Rsync мы должны предоставить пользователю его пароля, чтобы выполнить эту конкретную задачу, так что использование опции SSH отправим наши логины в зашифрованном виде, так что ваши пароли будут в безопасности.

Rsync может быть сконфигурирован по-разному для внешних резервных копий, но мы будем использовать способ наиболее практичный -это туннельный Rsync через SSH. Большинство серверов и даже на многих клиентских компьютерах или серверах уже есть SSH, и он может быть использован для ваших резервных копий с помощью RSYNC . Я покажу вам процесс, как можно скопировать все данные папки your_dir_1 в your_dir_1 по локальной сети или интернет. Работает это таким образом на локальном компьютере мы выполним данную команду для того чтобы все данные скопировалися на сервер ( убедитесь что на сервере стоит уже SSH):

У меня это выглядит вот так:

Если вы используете другой SSH порт ( стандартный 22-й), то можно указать любой другой передавая параметр, а выглядит это вот так:

PS: Только не забудьте его сгенерировать.

5. Показать прогресс при передаче данных с Rsync

Если файл или каталог не существует в источнике, но уже существует в месте назначения, вы, возможно захотите удалить уже существующий файл / каталог во время синхронизации.

8. Установка максимального размера для файлов для передачи

9. Автоматически удалить исходные файлы после успешной передачи

Если вы новичок и вы не знаете то и как работает в Rsync, то Rsync может действительно испортить файлы\папки в вашей папке, а затем выполнять отмены может быть утомительной работой.

3 thoughts on “ Резервное копирование с rsync в Linux ”

rsync -av –delete -e ‘ssh -p 22′ /media/bak/exchange root@10.200.2.202 /media/bak/exchange
В таком виде скрипт копирует все /media/bak/exchange/exchange
соответственно запустив несколько раз получим
/media/bak/exchange/exchange /exchange
/media/bak/exchange/exchange /exchange /exchange
/media/bak/exchange/exchange /exchange /exchange /exchange
/media/bak/exchange/exchange /exchange /exchange /exchange /exchange

Добавить комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Читайте также: