Установка и настройка сервиса Lsyncd на CentOS
Установка и настройка сервиса Lsyncd на CentOS
Опубликовано: 13.10.2020
Lsyncd позволяет отслеживать состояние каталога с помощью подсистемы ядра inotify, и при помощи утилиты синхронизации rsync, менять содержимое другого каталога, таким образом, приводя оба каталога к единому виду. Это может использоваться для зеркалирования кластерной системы или создания оперативного бэкапа (не путать с полноценной резервной копией).
В данной инструкции мы рассмотрим процесс установки и настройки Lsyncd на компьютер с Linux CentOS версий 8 и 7. Также мы настроим синхронизацию папок как на локальном компьютере, так и удаленных по сети.
Установка и тестовый запуск
Выполним установку lsyncd на CentOS, а также настроим сервис для синхронизации двух каталогов на локальном компьютере.
Установка
yum install epel-release
yum install lsyncd
Разрешаем автозапуск сервиса:
systemctl enable lsyncd
Настройка и запуск
Открываем конфигурационный файл:
Приводим его к виду:
settings <
logfile = "/var/log/lsyncd.log",
statusFile = "/var/log/lsyncd.stat",
statusInterval = 5,
insist = true,
nodaemon = false,
>
- settings — общие настройки.
- logfile — путь до файла логов.
- statusFile — файл, в который заносятся изменения, найденные с помощью inotify.
- statusInterval — интервал в секундах для обновления statusFile.
- insist — позволяет продолжить работу сервиса, даже если одна или несколько целевых директорий недоступны.
- nodaemon — отключаться или нет от вызывающей стороны. Проще говоря, если разрешить, то будет больше информации по его работе. Для боевого режима можно отключить.
- default.rsync — должен использоваться протокол для синхронизации rsync.
- source — источник, откуда синхронизируем данные.
- target — куда синхронизируем.
* в данном примере мы синхронизируем два каталога на локальном компьютере. Таким же образом, можно синхронизировать данные и в подмонтированных каталогах, например, по nfs или cifs (smb).
Создадим два тестовых каталога:
Перезапускаем сервис lsyncd:
systemctl restart lsyncd
Пробуем создать тестовый файл к каталоге-источнике:
Ждем 5-10 секунд. Проверяем содержимое каталога-цели:
Мы должны увидеть файл:
Сервис готов к работе.
Синхронизация по сети (SSH)
Для корректной передачи данных по сети с помощью SSH, нужно настроить возможность беспарольного подключения, затем — сам Lsyncd. Рассмотрим оба процесса по очереди.
SSH без пароля (по сертификату)
На компьютере, с которого будем передавать файлы (lsyncd) генерируем ключи:
ssh-keygen -t rsa
. на все запросы просто нажимаем Enter.
Переносим id_rsa.pub на целевой компьютер (куда будем передавать данные с помощью lsyncd):
scp /root/.ssh/id_rsa.pub dmosk@192.168.1.15:/home/dmosk/.ssh/authorized_keys
* если мы получим ошибку scp: /home/<user>/.ssh/authorized_keys: No such file or directory, необходимо на удаленном компьютере создать каталог .ssh в профиле пользователя, которому мы пытаемся передать ключ. Например, командами, mkdir /home/dmosk/.ssh и chown dmosk:dmosk /home/dmosk/.ssh.
* обратите внимание, что мы передаем созданный ключ в каталог пользователя dmosk. Это значит, что мы будем подключаться к целевому компьютеру от этого пользователя. Важно, чтобы у последнего были подходящие права для редактирования файлов в целевой папке, в которую мы будем синхронизировать данные.Пробуем подключиться к удаленному компьютеру:
Мы должны подключиться по SSH без ввода пароля. В противном случае, на целевом компьютере (к которому у нас не получилось подключиться) открываем конфигурационный файл для ssh:
Rsync — копирование и синхронизация файлов с удаленным сервером
Утилиту Rsync можно использовать для копирования и синхронизации файлов и папок с локального сервера Linux на удаленный и наоборот. Rsync позволяет копировать ваши данные между серверами внутри защищенного SSH соединения. Так же, rsync, поддерживает сжатие данных на лету, что повышает производительность системы.
Чтобы исключить потерю информации при отправке файлов, rsync сначала копирует всю передаваемую информацию во временный файл. Другая важная особенность rsync – файлы передаются в один поток, не создается отдельный поток для каждого файла (что вызывает проблему при передаче большого количества маленьких файлов в других утилитах).
В данной статье мы рассмотрим варианты использования rsync для синхронизации и копирования каталогов и файлов, и приведем примеры его расширенных настроек.
Установка и основные параметр rsync
Установка rsync не отличается от установки, любого другого пакета. В CentOS пакет rsync присутствует в базовом репозитории и устанавливается через yum (или dnf в CentOS 8):
rsync уже установлен в системе
Синтаксис команды выглядит следующим образом:
В качестве источника и приемника можно указать локальную или удаленную директорию на другом сервере.
- -v – вывести подробную информацию о процессе
- -c – проверка контрольных сумм файлов
- -q – минимальная информация
- -a – режим архивирования
- -R – относительные пути
- -y – не перезаписывать более новые файлы
- -b – создание резервной копии
- -l – копировать симлинки
- -L – копировать содержимое ссылок
- -H – копировать жесткие ссылки
- -g – сохранять группу
- -p – сохранять права для файлов
- -t – сохранять время модификаций
- -x – работать только в этой ФС
- -e – использовать другой транспортный протокол (например, ssh)
- -z – сжимать файлы перед передачей
- -delete – удалять файлы которых нет в источнике
- -exclude – исключить файлы
- -recursive – перебирать директории рекурсивно
- -no-recursive – отключить рекурсию
- -progress – выводить прогресс передачи файлов
- -stat – показать статистику передачи
- -max-size – максимальный размер файла для передачи
- -bwlimit — ограничение скорости для передачи файлов
- -version – версия утилиты
Локальное копирование/синхронизация каталогов
Rsync можно использовать для копирования файлов между локальными директориями сервера. Если вам нужно скопировать файлы из одной директории в другую, выполните команду:
В этом случае файл test.txt был просто скопирован в директорию /root/temp/
Можно добавить несколько опций для выполнения копирования. Например, чтобы перед выполнением копирования предварительно сжать файл, вывести подробную информацию и прогресс копирования файла, выполните:
Мы можем использовать rsync для синхронизации содержимого локальных каталогов. Например, rsync удобно использовать, когда вам требуется скопировать файлы из рабочей директории, на хранилище, которое примонтировано к какому-то разделу.
Мы скопировали директорию /root/.config в директорию для резервных копий, опция -r позволила рекурсивно скопировать все вложенные директории и файлы.
Чтобы сохранить все атрибуты файлов при копировании, например, дату изменения и дату создания файлов, добавьте ключ -a:
Если вы хотите скопировать только измененные файлы, добавьте опцию -c:
Я изменил только один файл и запустил команду. В результате в целевую директорию, был скопирован только измененный файл.
Настройка синхронизации с удаленным сервером
Чаще всего копирование/синхронизация rsync с удаленным сервером используется для резервного копирования или синхронизации конфигурации нод кластера. Можно выполнять автоматическую синхронизацию данных с рабочего сервера на резервный, и в случае проблем на продуктивном севере быстро все перевести на резервный. Это довольно удобный и простой в настройке вариант.
В современных версиях rsync протокол SSH используется для передачи файлов по-умолчанию. Однако вы можете использовать и демон rsyncd. Для этого клиент rsync должен быть установлен на удаленном компьютере, и его демон добавлен в автозагрузку:
Конфигурационный файл rsync — /etc/rsyncd.conf. В этом файле можно настроить параметры rsync и настройки для синхронизации для разных ресурсов.
Для синхронизации через демона rsync адрес удаленного сервера указывается так rsync://. Например:
Чтобы скопировать файл на удаленный сервер, используйте команду:
После запуска команды, удаленный сервер запросит пароль пользователя (если включена авторизация по паролю). Для автоматической авотризации нужно настроить SSH ключи.
Скопируем директорию с локального сервера на удаленный:
То есть, все тоже самое, что и с локальными директориями, только мы указываем адрес удаленного сервера.
Так же вы можете синхронизировать файлы и с удаленного сервера на локальный, команда для этого немного изменится:
Для принудительного использования SSH протокола для копирования файлов, укажите это в вашей команде (для выбора транспортного протокола копирования файлов используется опция –e):
Если удаленный SSH сервер имеет отличный от стандартного порт, его так же можно указать:
Другие примеры использования rsync
Если в рамках сессии синхронизации вы передаете много информации и важно ограничить скорость передачи, задайте это дополнительной опцией –bwlimit (указывается скорость в КБ/с):
При передаче файлов на удаленный сервер, вы можете ограничить максимальный размер файлов, которые нужно скопировать. Например, вы хотите скопировать все файлы, кроме файлов размером более 1 Мб:
Если у вас на сервере нужна односторонняя синхронизация и после переноса файлов на удаленный сервер нужно удалить файлы с исходного сервера, воспользуйтесь опцией -remove-source-files:
После выполнения команды, файл был скопирован на удаленный сервер и удален на источнике.
Так же очень удобный опции —include и —exclude, с помощью этих опций, можно делать исключения по копированию директорий или файлов:
В данном случае мы исключили директорию “administrator” при копировании на удаленный сервер.
Добавлением опции —include мы смогли задать фильтр по файлам, скопировали только файлы с расширением php.
Резервное копирование в Linux с помощью rsync
В своей рабое я часть использую rsync для автоматических задач резервного копирования в Linux. Можно написать простые bash скрипты или просто добавить команду rsync в cron и выполнять по расписанию.
Например, можно добавить в cron команду:
01 30 * * * rsync -zvra root@192.168.1.1:/backup/ /backup
В результате каждый день в 1:30 ночи, будет выполняться синхронизация каталогов локального и удаленного серверов.
Стоит учесть, что для выполнения команды rsync на удаленном сервер через cron, желательно настроить авторизацию серверов по SSH ключу. Примеры скриптов для бэкапа, мы приводили в статье «Скрипты для бэкапа файлов из Linux в облако», там как раз используется rsync для копирования файлов в подключенные облачные хранилища.
Приложения для синхронизации Android с компьютером
Бывает, что приходится работать с одними и теми же файлами с разных девайсов. Переносить файлы с устройства на устройство вручную неудобно и нудно. Здесь приходят на помощь приложения для синхронизации данных. При использовании такой программы можно внести изменения в файлах на одном устройстве и продолжить работу на другом девайсе с последней измененной версией файла. В этой статье рассмотрены некоторые из таких программ.
USB Driver для Android
Простейшая в использовании универсальная программа, позволяющая подключать смартфон или планшет к ПК, с легкостью синхронизировать данные и управлять устройством через компьютер. База поддерживаемых программой гаджетов обширна и подходит большинству обладателей смартфонов. Однако для некоторых нераспространенных устройств может потребоваться поискать специальный драйвер.
Для использования нужен только кабель USB.
Инструкция к подключению:
- Подключить телефон к ПК посредством кабеля.
- На компьютере открыть «Этот компьютер».
- В разделе «Устройства и диски» найти подключенное гаджет.
MyPhoneExplorer
Еще один бесплатный менеджер, позволяющий управлять файлами на устройстве с операционной системой Андроид. Программа предназначена для устройств Sony Ericsson. Телефон или планшет подключается к компьютеру с помощью USB-кабеля, по Bluetooth или порту ИК.
Официально приложение предназначено для использования с гаджетами К700, К750 и W800, но оно может работать и с другими моделями.
Пользователи поддерживаемых устройств оценят богатый ассортимент возможностей приложения. Программа позволяет синхронизировать файлы, переносить данные с телефона на ПК и наоборот, управлять вызовами, отправлять и создавать резервные копии СМС, контактов, отметок в календаре и прочих данных.
- перетаскивать файлы с устройства на устройство с помощью файлового менеджера;
- отправлять, изменять, сортировать СМС;
- синхронизировать информацию с Microsoft Outlook, Microsoft Outlook Express, Mozilla Thunderbird или Google Mail;
- просматривать контакты, профили, историю звонков и т. п;
- просматривать детальную информацию об устройстве, состоянии антенны, памяти, заряда батареи и прочем;
- работать с органайзером.
SyncMe Wireless
Несложное приложение с простым и понятным интерфейсом пригодится, если часто приходится перемещать между компьютером и мобильным устройством относительно небольшие объемы данных.
- копировать или переносить файлы всех форматов;
- создавать резервные копии;
- проводить синхронизацию между устройствами (односторонняя, двухсторонняя и т. д.);
- возможность переименовывать несколько файлов одновременно;
- быстро находить нужный файл с помощью удобных фильтров;
- работать одновременно с несколькими гаджетами.
Такой функционал не может не понравиться пользователям.
PC Remote
Данное приложение способно превратить любой смартфон в многофункциональный пульт управления компьютером. Для этого на ПК или ноутбук нужно установить удаленный сервер с сайта pcremoteserver, а на гаджет — само приложение. Для успешной работы оба устройства должны быть в одной сети Wi-Fi или Ethernet.
FTP-менеджеры для синхронизации данных
Работа по протоколу FTP — основной на сегодня способ загрузки и скачивания файлов по Сети. Для этого создан не один десяток программ. Зайдите в любой каталог программ — в разделе «FTP-менеджер» увидите с десятка три бесплатных или shareware-продуктов. С процессом загрузки файлов на сервер они вполне достойно справляются. Но редкая программа может качественно решать задачу синхронизации, то есть добавления или удаления только измененных файлов на локальном или удаленном компьютере. Оговоримся сразу, что задача синхронизации стоит не только перед вебмастерами. Она актуальна для сисадминов предприятий и организаций, которым приходится обеспечивать синхронность работы сотрудников над каким-либо проектом.
Из всего множества программ для работы с FTP, существующих на данный момент, для выполнения задач синхронизации пригодным оказалось не так уж много программных продуктов. Кстати, интересный момент — среди таких программ совершенно нет продуктов, разработанных крупными и признанными лидерами софтверной продукции. Все действительно интересные и работоспособные синхронизаторы сделаны или малыми компаниями, или отдельными программистами.
Возможно, что кому-то известны и другие интересные программы, но мы рассмотрим следующие три:
- vuBrief — автор Валентин Купрович, Санкт-Петербург, первый релиз — март 2001 года, Freeware;
- SmartSync Pro — от компании SmartSync Software, первый релиз так же в 2001 году, Shareware;
- WebSynchronizer — от компании ReGet Software, Санкт-Петербург, первый релиз — 14 июля 2003 года, Shareware.
Все они успешно выполняют следующие функции:
- перенос и синхронизация файлов между директориями в пределах одного компьютера;
- синхронизация файлов между удаленными компьютерами;
- синхронизация файлов между локальной и FTP-директорией;
- резервное архивирование файлов.
На этом не заканчивается сходство этих программ. Они могут работать с zip-архивами, у всех у них имеется возможность выполнения заданий в отсутствие пользователя по заранее составленному графику. Во всех программах создание задач синхронизации облегчено руководством специальной подпрограммы-мастера, где пошагово задаются параметры выполнения задачи.
vuBrief несложная в освоении и настройке программа, ориентированная на синхронизацию данных для частного пользователя при одновременной работе над проектом с разных рабочих мест (в офисе и дома).
Задание для синхронизации в этой программе называется «портфелем». Сколько создается заданий, столько и появится «портфелей» в окне vuBrief. Далее для «портфеля» задаются параметры: синхронизируемые директории, направление синхронизации, время синхронизации, отбор файлов для синхронизации по типу или имени, настройка FTP-соединения.
Простота работы и режим распространения программы (freeware) — основные преимущества программы, в целом ее можно порекомендовать начинающим пользователям.
SmartSync Pro появился фактически одновременно с vuBrief. Она выполняет все классические функции программы-синхронизатора, но имеет, по сравнению с vuBrief, более приятный интерфейс и несколько интересных и полезных особенностей.
Одной из таких особенностей является возможность планировать действия с файлами до и после синхронизации. Например, можно запустить определенную программу, если произошло изменение связанного с программой файла.
Программа может проводить «умную» синхронизацию, то есть не проводить копирование файлов, даже если они указаны в задании, если атрибуты, размер и время изменения исходного и синхронизируемого файлов совпали в результате сравнения.
SmartSync Pro ведет логи выполнения синхронизаций, что облегчает контроль выполнения работ в отсутствие пользователя. Доступ к программе можно закрыть паролем. Программа отлично подходит для профессионалов, связанных с работой в Сети, недорогая и удобная.
WebSynchronizer появился на рынке самым последним из перечисленных программ. Его движок основан на движке великолепно зарекомендовавшего себя download-менеджера ReGet. Это, а также опыт предшественников, позволили ему получить дополнительные возможности, которых нет у описанных выше программ.
Прежде всего, WebSynchronizer умеет учитывать поясное время. Если ваш сервер физически расположен в Америке, то при сравнении времени изменения файла разница в восемь часов будет учтена программой. Далее, программе доступна функция синхронизации данных между двумя удаленными серверами. Синхронизация всегда производится в несколько потоков (их число пользователь может ограничить), что увеличивает скорость синхронизации. Сама же скорость передачи данных при необходимости может регулироваться пользователем с целью снижения нагрузки на сеть и компьютеры.
Уникальной способностью можно назвать режим передачи данных: файлы передаются под измененными именами, и только после полной передачи происходят возврат файлу прежнего имени и удаление старого файла. Это существенно для российских пользователей, когда связь может разорваться в любой момент и передача файла сорвется. Если это происходит, то возможна ситуация, когда посещение сайта станет на некоторое время (до восстановления файла) невозможным. WebSynchronizer исключает такие ситуации.
К сожалению, у этой программы так же есть недоработки. Логи синхронизации сохраняются, только пока программа открыта, и их приходится сохранять отдельно. Нет парольной защиты при входе в программу, что актуально для многопользовательских машин.
Резюме
Среди множества программ, связанных с закачкой файлов по FTP, немногие могут выполнять функции синхронизации. С должным уровнем сервиса и надежностью работы эту функцию выполняют единицы. vuBrief — единственная из бесплатных программ, заслуживающая внимания. SmartSync Pro — качественный и надежный софт для вебмастера, обеспечивающий «умную» синхронизацию. WebSynchronizer обеспечивает повышенную скорость и надежность передачи данных.