Настройка Rsync Centos 7
Обновлено: 21.11.2024
При использовании Red Hat Enterprise Linux rsync можно использовать в качестве демона, чтобы несколько клиентов могли напрямую взаимодействовать с ним как с центральным сервером для размещения централизованных файлов и обеспечения их синхронизации. В следующем примере демонстрируется запуск rsync в качестве демона через сетевой сокет в правильном домене, а также то, как SELinux ожидает, что этот демон будет работать на предварительно определенном (в политике SELinux) TCP-порте. В этом примере показано, как изменить политику SELinux, чтобы демон rsync мог нормально работать на нестандартном порту.
Этот пример будет выполнен на одной системе, чтобы продемонстрировать политику SELinux и ее контроль над локальными демонами и процессами. Обратите внимание, что это только пример, демонстрирующий, как SELinux может повлиять на rsync. Подробная документация по rsync выходит за рамки этого документа. Дополнительные сведения см. в официальной документации по rsync. В этом примере предполагается, что пакеты rsync , setroubleshoot-server и аудита установлены, что используется целевая политика SELinux и что SELinux работает в принудительном режиме.
Процедура 22.1. Как заставить rsync запускаться как rsync_t
При запуске rsync в качестве демона следует использовать файл конфигурации и сохранить его как /etc/rsyncd.conf . Обратите внимание, что следующий файл конфигурации, используемый в этом примере, очень прост и не указывает на все возможные доступные параметры, его достаточно только для демонстрации работы демона rsync:
Теперь, когда существует простой файл конфигурации для работы rsync в режиме демона, вы можете запустить его, выполнив следующую команду:
Убедитесь, что rsyncd был успешно запущен (предполагается, что вывод должен выглядеть примерно так, как показано ниже, отличается только отметка времени):
SELinux теперь может применять свои механизмы защиты через демон rsync, так как теперь он работает в домене rsync_t:
В этом примере показано, как запустить rsyncd в домене rsync_t. Rsync также можно запускать как службу, активируемую сокетом. В этом случае rsyncd не выполняется до тех пор, пока клиент не попытается подключиться к службе. Чтобы включить rsyncd для работы в качестве службы, активируемой сокетом, выполните описанные выше шаги. Чтобы запустить rsyncd как службу, активируемую сокетом, введите следующую команду от имени пользователя root:
В следующем примере показано, как заставить этот демон успешно работать на порту, отличном от порта по умолчанию. В следующем примере используется TCP-порт 10000.
Процедура 22.2. Запуск демона rsync на порту, отличном от порта по умолчанию
Измените файл /etc/rsyncd.conf и добавьте строку port = 10000 вверху файла в области глобальной конфигурации (то есть до того, как будут определены какие-либо области файла). Новый файл конфигурации будет выглядеть так:
После запуска демона rsync с этим новым параметром SELinux регистрирует сообщение об отказе, подобное следующему:
Теперь, когда TCP-порт 10000 добавлен в политику SELinux для rsync_port_t , rsyncd запустится и будет нормально работать на этом порту:
Клонирование — это практика клонирования точной копии существующего сервера Live Linux с помощью инструмента командной строки rsync. Для клонирования требуется 2 экземпляра серверов — сервер для клонирования и сервер назначения, на котором будет происходить процесс клонирования. Инструмент командной строки rsync синхронизирует все файлы и каталоги с клонируемого сервера на целевой сервер.
В этом руководстве вы узнаете, как выполнить горячее клонирование сервера CentOS с помощью средства синхронизации файлов Rsync.
Настройка лаборатории
Вот лабораторная установка, которую мы используем для этого руководства.
- Исходный сервер — CentOS 7 — 192.168.2.103
- Целевой сервер — CentOS 7 — 192.168.2.110
Исходный сервер — это тот, который мы собираемся клонировать на целевой сервер.
Установка и требования
Прежде чем продолжить, убедитесь, что выполнены следующие предварительные условия:
- На обоих серверах должна быть установлена одна и та же версия операционной системы, например CentOS 7.x, CentOS 8.x и т. д.
- Кроме того, серверы должны иметь одинаковые файловые системы и одинаковую конфигурацию жестких дисков, т. е. однодисковые или в конфигурации RAID.
ПРИМЕЧАНИЕ. Перед горячим клонированием убедитесь, что вы отключили все службы, связанные с доставкой или записью данных, например базы данных, почтовую службу и т. д.
Шаг 1. Установка инструмента Rsync в CentOS
Для успешного клонирования на обоих серверах должен быть установлен инструмент командной строки rsync. Это будет использоваться для зеркалирования исходного сервера на целевой сервер и синхронизации всех различий между двумя системами. К счастью, современные системы поставляются с уже предустановленным rsync.
Чтобы проверить версию установленного rsync, выполните:
Если вы хотите просмотреть дополнительную информацию о rsync, выполните следующую команду rpm:
Если rsync отсутствует, выполните следующую команду, чтобы установить его в системах RHEL/CentOS/Fedora.
Шаг 2. Настройка исходного сервера
Есть каталоги и файлы, которые вы можете исключить из клонирования, поскольку они либо уже доступны на целевом сервере, либо созданы автоматически. К ним относятся каталоги /boot , /tmp и /dev.
Поэтому создайте файл исключения /root/exclude-files.txt и добавьте следующие записи:
Сохраните и закройте файл конфигурации.
Шаг 3. Клонируйте сервер CentOS
Установив все настройки, продолжите и выполните rsync вашего сервера с удаленным или целевым сервером с помощью команды:
Команда выполнит rsync все с исходного сервера на сервер назначения, за исключением файлов и каталогов, которые вы определили ранее. Обязательно замените параметр REMOTE-IP: IP-адресом вашего целевого сервера.
После завершения синхронизации перезагрузите целевую систему, чтобы перезагрузить изменения, а затем загрузитесь на сервер, используя учетные данные исходного сервера. Не стесняйтесь списывать старый сервер, поскольку теперь у вас есть его зеркальная копия.
Если вам понравилась эта статья, подпишитесь на уведомления по электронной почте о руководствах по Linux. Если у вас есть вопросы или сомнения? обратитесь за помощью в разделе комментариев.
Если вы цените то, что мы делаем здесь, в TecMint, вам следует подумать о следующем:
TecMint – это самый быстрорастущий и пользующийся наибольшим доверием сайт сообщества, где можно найти любые статьи, руководства и книги по Linux в Интернете. Миллионы людей посещают TecMint! для поиска или просмотра тысяч опубликованных статей, доступных всем БЕСПЛАТНО.
Если вам нравится то, что вы читаете, купите нам кофе (или 2) в знак признательности.
Мы благодарны за вашу бесконечную поддержку.
Похожие сообщения
4 мысли о «Как клонировать сервер CentOS с помощью Rsync»
Просто хотел поделиться тем, что смог успешно клонировать сервер на другой, спасибо! Я обнаружил, что это намного быстрее и имеет гораздо меньше конфликтов при загрузке с живого ISO, подключении блочного хранилища к исходному серверу, `dd` образа, а затем rsync соответствующих частей на целевом сервере.
Возможно, /etc/crypttab также следует исключить, особенно если настройки нескольких дисков/lvm различаются.
Спасибо за статью.
Но я не уверен, что в вашем примере можно использовать выражение «клон». Мне кажется, в таком случае мы можем использовать rsync только как инструмент для копирования-вставки, а не для клонирования. Здесь мы видим только то, что некоторые папки копируются с одного сервера на другой.
На мой взгляд, самым надежным инструментом клонирования в Linux является команда dd. В этом случае нет необходимости иметь предустановленную ОС на целевом сервере перед запуском команды dd.
"Кроме того, серверы должны иметь одинаковые файловые системы и одинаковую конфигурацию жестких дисков, т. е. однодисковые или в конфигурации RAID". – что произойдет, если размер жесткого диска на целевом сервере больше?
Емкость не является проблемой для места назначения при условии, что файловая система устроена таким же образом.
Есть что сказать? Присоединяйтесь к обсуждению. Отменить ответ
Этот сайт использует Akismet для уменьшения количества спама. Узнайте, как обрабатываются данные ваших комментариев.
Команда Linux rsync эффективно передает и синхронизирует файлы или каталоги между локальным компьютером, другим хостом, удаленной оболочкой или любой их комбинацией. Любой, кто работает с системами на базе Linux, должен использовать эту мощную команду для повышения своей производительности. С помощью этой статьи вы узнаете все, что вам нужно, чтобы начать ее использовать.
Синхронизация папок или копирование файлов вручную может занять невероятно много времени. Утилита rsync может сделать большую часть работы за вас, добавив при этом отличные функции для экономии времени. Даже если вы потеряете соединение во время передачи, этот инструмент запустится точно с того места, где он остановился, как только соединение будет восстановлено.
Основной синтаксис
Основной синтаксис rsync работает следующим образом:
Есть несколько способов использования rsync в Linux. В этом примере [необязательные модификаторы] указывают действия, которые необходимо выполнить, [SRC] — исходный каталог, а [DEST] — целевой каталог или компьютер.
Основной синтаксис удаленной оболочки
При использовании удаленной оболочки, такой как SSH или RSH, синтаксис rsync будет немного отличаться.
Для доступа к удаленной оболочке (PULL) используйте команду rsync:
Для доступа к удаленной оболочке (PUSH) используйте команду rsync:
Как проверить версию Rsync
Прежде чем мы проверим rsync, нам нужно войти в VPS, который мы будем использовать. Этот полезный учебник покажет вам, как сделать это на компьютере с Windows, используя Putty SSH. Если вы используете компьютер с MacOS или Linux, вместо этого используйте терминал.
Rsync предустановлен во многих дистрибутивах Linux. Чтобы проверить, установлен ли rsync на вашем компьютере, выполните следующую команду:
В нашем дистрибутиве Ubuntu команда выдала следующий вывод:
Это означает, что rsync версии 3.1.3 уже установлен на нашем компьютере. Просто, правда?
Как установить Rsync
Если на вашем компьютере не предустановлен rsync, вы можете сделать это вручную всего за минуту. В дистрибутивах на основе Debian, таких как Ubuntu, вы можете сделать это с помощью следующей команды:
В дистрибутивах на основе rpm, таких как Fedora и CentOS, используйте следующую команду:
В MacOS используйте следующую команду:
Вот оно! Linux rsync готов к синхронизации данных, выполнению передачи файлов и удалению файлов. Проверить успешность установки можно с помощью ранее упомянутой команды:
Как использовать команды Rsync
Для этого руководства мы создадим два каталога на рабочем столе Linux с именами оригинальный и дубликат. В исходном каталоге есть три файла, а дубликат пуст. Теперь давайте посмотрим, как rsync создаст новые способы повышения производительности.
Для создания двух тестовых каталогов используйте следующие команды:
Если вы хотите перепроверить, используйте команду ls, чтобы вывести список всех файлов внутри каталога:
Вывод будет выглядеть примерно так:
Если вы используете команду ls с дубликатом каталога, внешний вид должен быть пустым.
Теперь, когда каталоги настроены, давайте попробуем еще несколько команд.
Следующая команда скопирует или синхронизирует все файлы из исходного каталога в дубликат каталога.
* указывает команде rsync синхронизировать все в исходном каталоге с дубликатом.
Если мы поместим новое изображение или файл в исходную папку и повторно запустим ту же команду, в место назначения будет скопировано только новое изображение.
Эта функция удобна при копировании файлов по сети с ограниченной пропускной способностью.
Наиболее распространенные команды Rsync
Вот список наиболее распространенных команд, используемых с rsync:
Это включает режим архива.
Это дает вам визуальный вывод, показывающий ход процесса.
Это выводит в удобочитаемом формате.
Это сжимает данные файла во время передачи.
Это рекурсивное копирование данных
Как использовать команды Rsync с подкаталогами
Имейте в виду, что приведенная выше команда копирует файлы только из основного каталога исходной папки, а не из подкаталогов.
Если вы хотите также скопировать подкаталоги, вам нужно будет использовать эту команду:
Опция -r (–recursive) указывает rsync копировать все, включая подкаталоги и файлы из исходной папки.
Модификатор /, используемый после исходного, указывает rsync скопировать содержимое исходного каталога в дубликат папки.
Как синхронизировать файлы
Если вы хотите синхронизировать файлы, то есть скопировать файлы, находящиеся в папке назначения, но не находящиеся в исходной папке, в исходную папку, используйте следующую команду:
С помощью этой команды мы можем быть уверены, что и исходные, и дубликаты папок будут содержать одни и те же файлы.
Как комбинировать команды Rsync
Еще один полезный параметр -a (–archive), так как его можно объединить со многими другими командами. Это означает, что будут скопированы не только файлы, но и разрешения, время изменения и любая другая дата.
Добавление опции -a с -v будет выглядеть примерно так:
Не волнуйтесь, это только выглядит сложно. Давайте разберемся.
Эта команда отобразит только те файлы, которые будут скопированы без внесения каких-либо фактических изменений. С помощью этой команды вы можете получить список файлов, которые будут скопированы.
Если вы хотите скопировать все файлы, повторите команду без --пробного запуска.
— пробный запуск (или -n) заставляет rsync выполнить пробный запуск, который не вносит никаких изменений.
Другие параметры для команд Rysnc
При добавлении параметра -a к параметру -v создание -av в нашей команде увеличивает детализацию. Вот как это должно выглядеть:
Если вы хотите синхронизировать две папки и удалить элементы в дубликатной папке, которых нет в исходной папке, добавьте параметр –delete, например:
Вы также можете исключить определенные файлы или подкаталоги при синхронизации двух папок. Сделайте это, добавив -exclude=. Если вам нужно указать более одного файла, разделите их запятой.
Вы также можете включить определенные файлы или подкаталоги при синхронизации. Сделайте это, добавив -include=. Вы также можете использовать это с опцией -exclude=. В приведенном ниже примере будут включены файлы, начинающиеся с буквы L, и исключены все остальные файлы:
Используя Rsync, вы также можете указать размер файла, который можно синхронизировать. Для этого используйте опцию –max-size:
Использование параметра -z (–compress) объединит файлы, которые передаются по сети. В качестве бонуса давайте посмотрим, как сделать перенос с исходного сервера на другой. Команда будет выглядеть так:
Как упоминалось ранее, -z сжимает файлы, -a или простое добавление a к -z также гарантирует, что все разрешения будут скопированы.
~/Desktop/Original является источником. Это локальный каталог — тот, который находится на машине, в которую вы вошли, и, наконец, edward@192.168.22.90:~/tmp/ указывает место назначения. edward@192.168.22.90 — это адрес удаленного сервера назначения, а :~/tmp/ указывает на определенную папку на этом компьютере.
Как добавить индикатор выполнения
В дополнение к вышеуказанным командам вы можете добавить -P, который объединит параметры –progress и –partial. Это даст вам индикатор выполнения для передаваемых файлов, а также позволит вам возобновить любую прерванную передачу файлов.
Вывод будет выглядеть примерно так:
Затем, если мы снова запустим команду, мы увидим более короткий вывод. Это связано с тем, что новых изменений не было. Вывод будет выглядеть примерно так:
Если вы хотите передать только определенные файлы, вы можете указать это с помощью следующей команды:
Вывод будет аналогичен предыдущей команде, но только с файлами, указанными в фигурных скобках.
Как создать резервную копию Rsync
Еще одна важная команда — создать резервную копию Rsync. Для этого совместите –backup с командой –dir, чтобы указать, где будут храниться файлы резервных копий.
Заключение
Мы рассмотрели только верхушку айсберга, когда речь идет о командах Rsync. Linux Rsync — невероятно мощная утилита, которую должен знать каждый администратор сервера или разработчик Linux. Мы рассмотрели все, чтобы вы могли начать работу, от установки до основных команд. Если вы хотите узнать о более продвинутых функциях — ознакомьтесь с официальной документацией.
Приготовьтесь повысить свою продуктивность. Удачи в вашем проекте.
Откройте для себя другие команды Linux для управления сервером
Эдвард – редактор контента с многолетним опытом работы в сфере ИТ в качестве писателя, маркетолога и энтузиаста Linux. Цель Эдварда — побудить читателей создать впечатляющее присутствие в Интернете. Еще он очень любит собак, гитары и все, что связано с космосом.
сообщить об этом объявлении
rsync — это быстрая и универсальная утилита командной строки для синхронизации файлов и каталогов между двумя местоположениями через удаленную оболочку или из/в удаленный демон Rsync. Он обеспечивает быструю добавочную передачу файлов, передавая только различия между источником и местом назначения.
Rsync можно использовать для зеркального отображения данных, добавочного резервного копирования, копирования файлов между системами и в качестве замены команд scp , sftp и cp .
В этой статье объясняется, как использовать rsync с помощью практических примеров и подробных объяснений наиболее распространенных параметров rsync.
Утилита rsync предварительно установлена в большинстве дистрибутивов Linux и macOS. Если в вашей системе не установлен rsync, вы можете легко установить его с помощью диспетчера пакетов вашего дистрибутива.
Прежде чем перейти к использованию команды rsync, давайте начнем с изучения основного синтаксиса.
Выражения утилиты rsync имеют следующую форму:
- OPTION — параметры rsync.
- SRC – исходный каталог.
- DEST – каталог назначения.
- USER – имя удаленного пользователя.
- HOST – имя или IP-адрес удаленного хоста.
- -a , --archive , режим архива, эквивалентный -rlptgoD . Этот параметр указывает rsync рекурсивно синхронизировать каталоги, передавать специальные и блокировать устройства, сохранять символические ссылки, время модификации, группы, владельцев и разрешения.
- -z , --compress . Этот параметр заставляет rsync сжимать данные при их отправке на конечный компьютер. Используйте этот параметр, только если подключение к удаленному компьютеру медленное.
- -P эквивалентно --partial --progress . Когда используется этот параметр, rsync показывает индикатор выполнения во время передачи и сохраняет частично переданные файлы. Это полезно при передаче больших файлов по медленному или нестабильному сетевому соединению.
- --удалить . Когда используется этот параметр, rsync удаляет посторонние файлы из места назначения. Это полезно для зеркального отображения.
- -q, --quiet. Используйте этот параметр, если хотите подавить сообщения, не являющиеся ошибками.
- -e . Эта опция позволяет вам выбрать другую удаленную оболочку. По умолчанию rsync настроен на использование ssh.
Самый простой вариант использования rsync — копирование одного файла из одного локального расположения в другое. Вот пример:
Пользователь, выполняющий команду, должен иметь права на чтение в исходном расположении и права на запись в месте назначения.
Если не указывать имя файла в месте назначения, копируется файл с текущим именем. Если вы хотите сохранить файл под другим именем, укажите новое имя в части назначения:
Настоящая мощь rsync проявляется при синхронизации каталогов. В приведенном ниже примере показано, как создать локальную резервную копию файлов веб-сайта:
Если целевой каталог не существует, rsync создаст его.
Стоит отметить, что rsync по-разному обрабатывает исходные каталоги с завершающей косой чертой ( / ). Если исходный каталог имеет косую черту в конце, команда скопирует только содержимое каталога в целевой каталог. Если завершающая косая черта опущена, rsync копирует исходный каталог в целевой каталог.
При использовании rsync для удаленной передачи данных он должен быть установлен как на исходном, так и на целевом компьютере. Новые версии rsync настроены на использование SSH в качестве удаленной оболочки по умолчанию.
В следующем примере мы переносим каталог с локального компьютера на удаленный:
Если вы не настроили вход по SSH без пароля на удаленный компьютер, вам будет предложено ввести пароль пользователя.
Для передачи данных с удаленного компьютера на локальный используйте удаленное расположение в качестве источника:
Если SSH на удаленном узле прослушивает порт, отличный от 22 по умолчанию, укажите порт с помощью параметра -e:
При передаче больших объемов данных рекомендуется запускать команду rsync внутри сеанса экрана или использовать параметр -P:
Есть два варианта исключения файлов и каталогов. Первый вариант — использовать аргумент --exclude и указать файлы и каталоги, которые вы хотите исключить, в командной строке.
При исключении файлов или каталогов необходимо использовать их относительные пути к исходному расположению.
В следующем примере показано, как исключить каталоги node_modules и tmp:
Второй вариант — использовать параметр --exclude-from и указать файлы и каталоги, которые вы хотите исключить из файла.
Мы показали вам, как использовать Rsync для копирования и синхронизации файлов и каталогов. Многое еще можно узнать о Rsync на странице руководства пользователя Rsync.
Читайте также: