rsync — это инструмент удаленной синхронизации данных под Liunx. Он может быстро синхронизировать файлы и каталоги между несколькими серверами, а также обеспечить инкрементную синхронизацию для сокращения передачи данных.
Существует два часто используемых метода аутентификации для rsync: один — метод rsync-daemon, а другой — метод ssh.
Метод daemon имеет следующие отличия от метода ssh:
1. Нет необходимости полагаться на службу sshd удаленного сервера, но на удаленном сервере необходимо включить службу rsyncd. Локальную службу rsyncd включать не нужно. 2. Реальная системная учетная запись удаленного сервера не используется напрямую, а используется виртуальная учетная запись и виртуальный пароль, при этом нет необходимости вводить пароль вручную. При этом модуль конфигурации ограничивает каталоги для удаленной синхронизации. . 3. По сравнению с методом ssh метод демона более безопасен.
В этой статье в основном представлены шаги по реализации rsync-daemon в операционной системе CentOS.
CentOS Версии 7.x и выше по умолчанию имеют функцию «Установить». rsync,Можетк Проверьте успешность установки с помощью команды
rpm -qa |grep rsync
# rsync-3.1.2-12.el7_9.x86_64 значит установлен
Если он не установлен, вы можете установить его с помощью следующей команды
yum -y install rsync
Удаленный сервер 192.168.1.1 предоставляет службы. rsyncd необходимо включить и настроить.
Локальный сервер 192.168.1.2, нет необходимости включать и настраивать rsyncd
vim /etc/rsyncd.conf
# к rsync Пользователь запускает процесс
uid = rsync
gid = rsync
# Нет необходимости запускать rsync-root,Позволяет получить полные атрибуты файла
fake super = yes
# Ограничивает передаваемые данные определенным каталогом и не позволяет выйти из каталога.
# Разрешите chroot для повышения безопасности. Когда клиент подключается к модулю, сначала выполните chroot в каталог, указанный параметром пути к модулю.
# Если chroot имеет значение «да», необходимо использовать права root, а резервное копирование файлов ссылок за пределами пути невозможно.
use chroot = no
# Максимальное количество подключений
max connections = 200
# тайм-аут
timeout = 300
# путь к файлу pid
pid file = /var/run/rsyncd.pid
# Заблокировать путь к файлу
lock file = /var/run/rsync.lock
# Устраните рассинхронизацию определенных файлов или каталогов
exclude = lost+found/
# Запись журнала передачи файлов
transfer logging = yes
# Укажите файл журнала
log file = /var/log/rsyncd.log
# Формат файла журнала
log format = %t %a %m %f %b
# Игнорировать сообщение об ошибке
ignore errors
# Доступные для чтения и записи данные резервного копирования
read only = false
# Не разрешено просматривать информацию о модуле
list = false
# Определите виртуального пользователя в качестве пользователя аутентификации соединения.
auth users = rsync_backup
# Определите путь к файлу пароля аутентификации подключения пользователя службы rsync.
secrets file = /etc/rsync.password
# Установить файлы, не требующие сжатия
dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
# Определить информацию о модуле
[backup]
# Информация аннотации модуля
comment = "backup dir"
# Определите каталог резервных данных, настройте здесь в соответствии с реальной ситуацией.
path = /backup
id rsync
# может вернуться id: rsync: No such user
useradd -s /sbin/nologin -M rsync
#(-s создает оболочку пользователя, /sbin/nologin означает отсутствие входа в систему, -M rsync означает не создавать домашний каталог пользователя rsync)
# каталог создан /backup/ Путь к rsyncd.conf в файле конфигурации на шаге 2 должен быть таким же.
mkdir /backup/
chown -R rsync:rsync /backup/
# Пользователь rsync_backup в команде должен соответствовать имени виртуального пользователя, определенному в /etc/rsync.password.
# В команде test888 — это пароль аутентифицированного пользователя. Настройте его в соответствии с реальной ситуацией.
echo "rsync_backup:test888" >> /etc/rsync.password
chmod 600 /etc/rsync.password
rsync --daemon
Если вам нужно завершить работу, введите команду pkill rsync, и служба остановится.
ps -ef |grep rsync
netstat -antlp |grep rsync
Если netstat не установлен, вы можете установить его с помощью команды yum install net-tools
Создать файл сертификации
# В команде test888 — это пароль пользователя аутентификации удаленного сервера, который должен быть последовательным.
echo "test888" >> /etc/rsync.password
chmod 600 /etc/rsync.password
Каждый раз, когда вы отправляете данные в интерактивном режиме, вам необходимо вручную вводить пароль аутентифицированного пользователя (в данном примере — test888).
rsync -avuz /home/ rsync_backup@192.168.1.1::backup
Никакого взаимодействия не требуется, поскольку файл /etc/rsync.password настроен, поэтому нет необходимости вводить пароль каждый раз при отправке.
rsync -avuz /home/ rsync_backup@192.168.1.1::backup --password-file=/etc/rsync.password
# В интерактивном режиме вам необходимо вручную ввести пароль пользователя для аутентификации, в данном примере — test888.
rsync -a rsync_backup@192.168.1.1::backup /home/
# Интерактивный и не требует пароля
rsync -a rsync_backup@192.168.1.1::backup /home/ --password-file=/etc/rsync.password
Уведомление: К исходному каталогу добавляется косая черта. В результате содержимое каталога переносится в целевой каталог. Например, /test/ означает синхронизацию файлов и каталогов в каталоге test (за исключением самого тестового каталога) с целевым. каталог. Если в исходном каталоге нет косой черты, каталог будет перенесен в целевой каталог. Например, /test означает синхронизацию файлов и каталогов в тестовом каталоге (включая сам тестовый каталог) с целевым каталогом. Если целевой каталог не существует, он будет создан автоматически.
-v, --verbose подробный режим вывода
-a, --archive режим архива,Указывает на рекурсивную передачу файлов,и сохранить все атрибуты файлапостоянный
-u, --update Только обновление, то есть пропуск существующего целевого местоположения, а время файла должно быть позже, чем время файла для резервного копирования, и новые файлы не будут перезаписаны.
-z, --compress сжимает файлы резервных копий во время передачи.
--delete, удалить файлы, существующие в целевом каталоге, но не в исходном каталоге
--exclude=PATTERN,Укажите шаблон для исключения файлов, которые не нужно переносить
-v, --verbose Подробный вывод в режиме
-q, --quiet Режим пониженной мощности
-c, --checksum Включите переключатель проверки, чтобы принудительно проверять передачу файлов.
-a, --archive Режим архива,Указывает на рекурсивную передачу файлов,и сохранить все атрибуты файла,равный-rlptgoD
-r, --recursive Обработка подкаталогов в рекурсивном режиме
-R, --relative Использовать информацию об относительном пути
# rsync foo/bar/foo.c remote:/tmp/ ## Rsync Параметр создает файл foo.c в каталоге /tmp, и если используется параметр -R:
# rsync -R foo/bar/foo.c remote:/tmp/ ## Rsync Параметр создаст файл /tmp/foo/bar/foo.c, что означает, что будет сохранена полная информация о пути.
-b, --backup Создать резервную копию,То есть, если такое же имя файла уже существует для места назначения.,Переименуйте старый файл в~filename。Можеткиспользовать--suffixвозможность указать другой префикс файла резервной копии。
--backup-dir Сохраните файл резервной копии (например, ~filename) в каталоге.
-suffix=SUFFIX Определить префикс файла резервной копии
-u, --update Просто обновите, то есть пропустите все файлы, которые уже существуют в DST и находятся позже файлов, подлежащих резервному копированию. (Не перезаписывает обновленные файлы)
-l, --links Сохраняйте мягкие ссылки
-L, --copy-links Хотите обращаться с программными ссылками как с обычными файлами
--copy-unsafe-links Копирует только ссылки, указывающие за пределы дерева каталогов путей SRC.
--safe-links Игнорируйте ссылки, указывающие за пределы дерева каталогов путей SRC.
-k, --copy-dirlinks transform symlink to a dir into referent dir
-K, --keep-dirlinks treat symlinked dir on receiver as dir
-H, --hard-links Сохраняйте жесткие ссылки
-p, --perms Сохраняйте права доступа к файлам
-o, --owner Сохранение информации о владельце файла
-g, --group Сохранять информацию о группе файлов
-D, --devices Сохраняйте информацию о файлах устройства
-t, --times Сохраняйте информацию о времени файла
-S, --sparse Специальная обработка разреженных файлов. Экономия места на летнее время.
-n, --dry-run определяет, какие файлы будут переданы
-W, --whole-file Копирование файлов без инкрементного обнаружения
-x, --one-file-system Не пересекайте границы файловой системы
-B, --block-size=SIZE Размер блока, используемый алгоритмом проверки, по умолчанию — 700 байт.
-e, --rsh=COMMAND Укажите программу-оболочку для замены rsh
--rsync-path=PATH Укажите информацию о пути команды rsync на удаленном сервере.
-C, --cvs-exclude Используйте тот же метод, что и CVS, для автоматического игнорирования файлов и исключения файлов, которые вы не хотите передавать.
--existing Обновляйте только те файлы, которые уже существуют в DST, без резервного копирования вновь созданных файлов.
--delete Удалить файлы в DST, которых нет в SRC
--delete-excluded Также удалите на принимающей стороне файлы, исключенные этой опцией.
--delete-after Удалить после завершения передачи
--ignore-errors Удаляйте ошибки ввода-вывода, если они возникают вовремя.
--max-delete=NUM Удалить не более NUM файлов
--partial Сохранять файлы, которые по каким-то причинам не были полностью перенесены,к — ускорить последующие повторные передачи
--force Принудительное удаление каталога, даже если он не пуст.
--numeric-ids Не сопоставление числовых идентификаторов пользователей и групп с именами пользователей и именами групп.
--timeout=TIME IPтайм-аут,Единица измерения — секунды
-I, --ignore-times Не пропускайте файлы с одинаковым временем и длиной
--size-only При принятии решения о резервном копировании файла просто обратите внимание на его размер, а не на возраст файла.
--modify-window=NUM Окно временной метки, используемое при определении того, имеют ли файлы одинаковое время, по умолчанию — 0.
-T --temp-dir=DIR Создание временных файлов в DIR
--compare-dest=DIR Также сравните файлы в каталоге, чтобы решить, требуется ли резервное копирование.
-P Эквивалентно --partial
--progress Показать процесс резервного копирования
-z, --compress Сжимайте файлы резервных копий во время передачи
--exclude=PATTERN Укажите шаблон для исключения файлов, которые не нужно переносить
--include=PATTERN Укажите шаблоны файлов, которые необходимо перенести, не исключая их.
--exclude-from=FILE Исключить файлы с указанным шаблоном в FILE
--include-from=FILE Не исключать файлы, соответствующие шаблону, указанному в параметре FILE.
--version Информация о версии для печати
--address Привязка к конкретному адресу
--config=FILE Укажите другие файлы конфигурации вместо использования файла rsyncd.conf по умолчанию.
--port=PORT Укажите другие порты службы rsync
--blocking-io Используйте блокировку ввода-вывода с помощью удаленной оболочки
-stats Предоставляет статус передачи определенных файлов
--progress Реализуйте процесс передачи во время передачи
--log-format=FORMAT Укажите файл журнала Формат
--password-file=FILE Получить пароль от ФАЙЛА
--bwlimit=KBPS Ограничение пропускной способности ввода-вывода, Кбайт per second
-h, --help Показать справочную информацию