Astra linux синхронизация файлов

Команда Rsync в Linux с примерами

rsync — это быстрая и универсальная утилита командной строки для синхронизации файлов и каталогов между двумя местоположениями через удаленную оболочку или с / на удаленный демон Rsync. Он обеспечивает быструю инкрементную передачу файлов, передавая только различия между источником и местом назначения.

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

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

Установка Rsync

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

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

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

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

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

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

Local to Local: rsync [OPTION]. [SRC]. DEST Local to Remote: rsync [OPTION]. [SRC]. [USER@]HOST:DEST Remote to Local: rsync [OPTION]. [USER@]HOST:SRC. [DEST] 
  • OPTION — параметры rsync .
  • SRC — Исходный каталог.
  • DEST — целевой каталог.
  • USER — удаленное имя пользователя.
  • HOST — удаленное имя хоста или IP-адрес.

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

  • -a , —archive , режим архива, эквивалент -rlptgoD . Этот параметр указывает rsync рекурсивно синхронизировать каталоги, передавать специальные и блочные устройства, сохранять символические ссылки, время модификации, группы, владение и разрешения.
  • -z , —compress . Эта опция заставляет rsync сжимать данные при их отправке на конечный компьютер. Используйте эту опцию, только если подключение к удаленному компьютеру медленное.
  • -P , что эквивалентно —partial —progress . Когда используется эта опция, rsync показывает индикатор выполнения во время передачи и сохраняет частично переданные файлы. Это полезно при передаче больших файлов по медленным или нестабильным сетевым соединениям.
  • —delete . Когда используется эта опция, rsync удаляет посторонние файлы из места назначения. Это полезно для зеркалирования.
  • -q , —quiet . Используйте эту опцию, если вы хотите подавить сообщения, не связанные с ошибками.
  • -e . Эта опция позволяет вам выбрать другую удаленную оболочку. По умолчанию rsync настроен на использование ssh.
Читайте также:  Kde линукс лучшие дистрибутивы

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

Самый простой вариант использования rsync — это копирование одного файла из одного в другое локальное расположение. Вот пример:

rsync -a /opt/filename.zip /tmp/

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

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

rsync -a /opt/filename.zip /tmp/newfilename.zip

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

rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html_backup/

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

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

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

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

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

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

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

rsync -a [email protected]_host_or_ip:/opt/media/ /opt/media/

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

Читайте также:  Установка firefox для линукс

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

rsync -a -P [email protected]_host_or_ip:/opt/media/ /opt/media/

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

Есть два варианта исключения файлов и каталогов. Первый вариант — использовать аргумент —exclude и указать файлы и каталоги, которые вы хотите исключить, в командной строке.

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

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

rsync -a --exclude=node_modules --exclude=tmp /src_directory/ /dst_directory/

Второй вариант — использовать параметр —exclude-from и указать файлы и каталоги, которые вы хотите исключить из файла.

rsync -a --exclude-from='/exclude-file.txt' /src_directory/ /dst_directory/

Выводы

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

Не стесняйтесь оставлять комментарии, если у вас есть вопросы.

Источник

Установка и настройка сервиса Lsyncd на Linux

Обновлено

Обновлено: 19.08.2022 Опубликовано: 13.10.2020

Используемые термины: rsync, Linux, CentOS, Ubuntu. Lsyncd позволяет отслеживать состояние каталога с помощью подсистемы ядра inotify, и при помощи утилиты синхронизации rsync, менять содержимое другого каталога, таким образом, приводя оба каталога к единому виду. Это может использоваться для зеркалирования кластерной системы или создания оперативного бэкапа (не путать с полноценной резервной копией). В данной инструкции нами будет рассмотрен процесс установки и настройки Lsyncd на компьютер с Linux CentOS версий 8 и 7, а также Ubuntu. Мы настроим синхронизацию папок как на локальном компьютере, так и удаленных по сети.

Установка и тестовый запуск

Выполним установку lsyncd на Linux, а также настроим сервис для синхронизации двух каталогов на локальном компьютере.

Установка

В зависимости от типа операционной системы, наши действия будут отличаться. а) RPM (Rocky Linux, CentOS):

Настройка и запуск

settings <
logfile = «/var/log/lsyncd.log»,
statusFile = «/var/log/lsyncd.stat»,
statusInterval = 5,
insist = true,
nodaemon = false,
>

Читайте также:  Linux mint виртуальный монитор

sync default.rsync,
source=»/tmp/source»,
target=»/tmp/target»,
>

  • settings — общие настройки.
    • logfile — путь до файла логов.
    • statusFile — файл, в который заносятся изменения, найденные с помощью inotify.
    • statusInterval — интервал в секундах для обновления statusFile.
    • insist — позволяет продолжить работу сервиса, даже если одна или несколько целевых директорий недоступны.
    • nodaemon — отключаться или нет от вызывающей стороны. Проще говоря, если разрешить, то будет больше информации по его работе. Для боевого режима можно отключить.
    • default.rsync — должен использоваться протокол для синхронизации rsync.
    • source — источник, откуда синхронизируем данные.
    • target — куда синхронизируем.

    * в данном примере мы синхронизируем два каталога на локальном компьютере. Таким же образом, можно синхронизировать данные и в подмонтированных каталогах, например, по nfs или cifs (smb).

    Создадим два тестовых каталога:

    Перезапускаем сервис lsyncd:

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

    Ждем 5-10 секунд. Проверяем содержимое каталога-цели:

    Синхронизация по сети (SSH)

    Для корректной передачи данных по сети с помощью SSH, нужно настроить возможность беспарольного подключения, затем — сам Lsyncd. Рассмотрим оба процесса по очереди.

    SSH без пароля (по сертификату)

    На компьютере, с которого будем передавать файлы (lsyncd) генерируем ключи:

    . на все запросы просто нажимаем Enter.

    Переносим id_rsa.pub на целевой компьютер (куда будем передавать данные с помощью lsyncd):

    scp /root/.ssh/id_rsa.pub dmosk@192.168.1.15:/home/dmosk/.ssh/authorized_keys

    * если мы получим ошибку scp: /home//.ssh/authorized_keys: No such file or directory, необходимо на удаленном компьютере создать каталог .ssh в профиле пользователя, которому мы пытаемся передать ключ. Например, командами, mkdir /home/dmosk/.ssh и chown dmosk:dmosk /home/dmosk/.ssh.
    * обратите внимание, что мы передаем созданный ключ в каталог пользователя dmosk. Это значит, что мы будем подключаться к целевому компьютеру от этого пользователя. Важно, чтобы у последнего были подходящие права для редактирования файлов в целевой папке, в которую мы будем синхронизировать данные.

    Пробуем подключиться к удаленному компьютеру:

    Мы должны подключиться по SSH без ввода пароля. В противном случае, на целевом компьютере (к которому у нас не получилось подключиться) открываем конфигурационный файл для ssh:

    И приводим опцию AuthorizedKeysFile к следующему значению:

    Источник

Оцените статью
Adblock
detector