rsync что это такое

Как использовать Rsync для удаленной и локальной синхронизации данных

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

Это кроссплатформенная утилита, подходящая для использования в Linux и Unix-подобных системах, а также представленная в виде бесплатного дистрибутива для работы с Microsoft Windows (cwRsync).

rsync что это такое. Смотреть фото rsync что это такое. Смотреть картинку rsync что это такое. Картинка про rsync что это такое. Фото rsync что это такое

С ее помощью, можно синхронизировать данные на любом физическом носителе. Также, ею нередко пользуются при заказе хостинг-услуг, таких как аренда VPS-сервера для бизнеса или хранения личной информации. В этом случае утилита позволяет легко копировать необходимые файлы и папки, а также осуществлять перенос сайтов, баз данных, корпоративной почты, 1C-бухгалтерий и многого другого в защищенном формате.

Особенности работы с Rsync

Программное обеспечение разработано на базе open source и позволяет создавать копии требуемых данных в нескольких направлениях:

С локального компьютера на удаленный и наоборот;

С локального ПК на выделенный сервер или виртуальный сервер и обратно.

rsync что это такое. Смотреть фото rsync что это такое. Смотреть картинку rsync что это такое. Картинка про rsync что это такое. Фото rsync что это такое

Установка Rsync предоставляет возможность дифференциального резервного копирования, а также шифрования данных с помощью сетевых протоколов SSH/SSL.

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

Например, если возникла необходимость купить виртуальный сервер/ арендовать VDS – Rsync позволит синхронизировать данные во всех хранилищах на высокой скорости и без каких-либо задержек.

Как запустить процесс синхронизации

Программа довольно проста в управлении. Потребуется выполнить буквально пару шагов:

Скачать и установить утилиту на ПК, выбрав значения по умолчанию. При необходимости, провести настройку Rsync-сервера, указав параметры доступа.

Теперь нужно определиться с тем, что и куда требуется перенести.

Удаленное копирование

Скопировать файлы и каталоги с локального ПК на сервер от Unihost, как и на другие серверы можно таким образом:

Локальное копирование

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

При желании, можно узнать о прогрессе копирования, дополнив вышеуказанное параметром «–progress».

Полезные опции

Контролировать процесс передачи данных, используя Rsync на VPS или локальном ПК, позволят следующие ключи:

«–include» (добавление файлов согласно шаблону);

«–exclude» (исключение файлов согласно шаблону)ю

«–delete» (удаление данных, отсутствующих в источнике);

«–recursive» (рекурсивная передача директорий);

«–no-recursive» (отключение рекурсивной передачи).

rsync что это такое. Смотреть фото rsync что это такое. Смотреть картинку rsync что это такое. Картинка про rsync что это такое. Фото rsync что это такое

Применение таких параметров, как: «–а», «–b», «–e», «–z», «–W», «–H» и других, также позволит с легкостью корректировать работу программы.

Более детальную инструкцию по работе с Rsync можно посмотреть здесь.

Источник

Rsync: мощная утилита для быстрого, гибкого удаленного и локального копирования файлов

rsync что это такое. Смотреть фото rsync что это такое. Смотреть картинку rsync что это такое. Картинка про rsync что это такое. Фото rsync что это такоеRsync разработан для замены rcp – древней программы для удаленного копирования под Unix. Благодаря широким возможностям синхронизации и передачи файлов, rsync часто применяется для создания зеркал.
Использование хитроумного алгоритма, позволяет rsync передавать только изменения в файлах, причем для выявления изменений ему не надо сравнивать два файла. Кроме того, rsync производит сжатие на лету, позволяя тем самым передавать файлы с максимальной эффективностью.
Кроме вышеописанных вкусностей, rsync обладает также и несколькими полезными возможностями обеспечения безопасности. Он поддерживает ssh – рекомендованный протокол для безопасной передачи данных; перед обработкой информации производит ее запись во временный файл, чтобы ничего не случилось с оригиналом, наконец, он поддерживает специальный режим безопасной отладки команд.
Rsync прост в использовании, но не является программой «click-and-play». Это —мощный инструмент, который может быть очень полезным, но не стоит забывать об осторожности, так как его с помощью легко что-нибудь испортить.

Синтаксис утилиты
Синтаксис утилиты простой и довольно обыденный.
rsync [опции] источник [приемник]
Указав только источник, мы увидим список файлов без операции копирования.

Удаленная работа
Кроме того, очень полезным будет его способность работать через ssh. Что обеспечивает шифрование канала, что очень важно, если вы синхронизируете два сервера в сети интернет. Для уменьшение трафика, rsync так-же умеет сжимать данные, при передаче по сети.
Необходимы следующие опции:
-e — задать удаленный шелл для использования;
-z — сжимать передаваемые данные, либо задать:
-compress-level=9 — сжатие с установкой уровня компрессии.

Надеюсь эта информация будет полезна многим. Больше информации про утилиту rsync вы сможете найти в ее же документации, благо она хорошо описана.
Там же вы можете найти информацию о том, как поднять дэмон rSync для непосредственного подключения без использования удаленного ssh шелла, а так же описание множества других опций на любой вкус и цвет.

Источник

rsync (Русский)

rsync — утилита с открытым исходным кодом для быстрого инкрементного перемещения файлов.

Contents

Установка

rsync должен быть установлен как на устройстве-отправителе, так и на устройстве-получателе.

Фронтенды

Как альтернатива cp/mv

Файлы могут копироваться локально, как при помощи cp, но rsync интересна прежде всего возможностью удалённого копирования файлов, то есть между двумя разными хостами. Удалённые расположения могут быть указаны при помощи синтаксиса хост-двоеточие:

При локальном или удалённом перемещении файлов, rsync сперва создаёт список файлов, содержащий информацию (по умолчанию это размер файла и время его последнего изменения), которая затем будет использована для определения, нуждается ли файл в построении. Для каждого файла, нуждающегося в построении, находится слабая и сильная контрольная сумма для каждого блока так, что каждый блок имеет длину S байт, не пересекается с другими и имеет сдвиг, который делится на S. Благодаря этой информации, большие файлы могут быть построены с помощью rsync без необходимости перемещения файла целиком. Для более детального практического и математического объяснения см. как работает rsync (англ.) и алгоритм rsync (англ.) соответственно.

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

Предостережение о замыкающем слэше

По умолчанию Arch использует GNU cp (часть GNU coreutils ). Однако rsync следует соглашениям BSD cp, которые особо обрабатывают каталоги источника с замыкающим слэшем «/». Несмотря на то, что

создаёт каталог «назначение/источник» с содержимым «источника», команда

Это поведение отличается от такового в GNU cp, которая одинаково обрабатывает «источник» и «источник/» (но не «источник/.»). Кроме того, некоторые оболочки автоматически добавляют замыкающий слэш при tab-дополнении имён каталогов. В виду этих обстоятельств, новые или нечастые пользователи rsync могут зачастую забывать про разное поведение rsync и случайно создавать беспорядок или даже перезаписывать важные файлы, оставляя замыкающий слэш в командной строке.

Поэтому имеет смысл использовать сценарий-обёртку, чтобы автоматически удалять замыкающий слэш перед вызовом rsync:

Как утилита для резервного копирования

Протокол rsync легко может использоваться для резервного копирования, перемещая только файлы, изменённые с момента последней резервной копии. Этот раздел описывает очень простой сценарий, выполняемый по расписанию, использующий rsync, обычно используемый для копирования на извлекаемый носитель.

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

В этом примере сценарий будет создан в каталоге /etc/cron.daily и будет запускаться ежедневно, если демон cron должным образом установлен и настроен. Настройка и использование cron выходит за рамки этой статьи.

Сперва создайте сценарий, содержащий подходящие опции команды:

Здесь /каталог/для/резервного/копирования следует заменить на каталог, нуждающийся в резервной копии (например /home ), а /расположение/резервной/копии на каталог, куда следует сохранять резервную копию (например /media/disk ).

В конце надо сделать сценарий исполняемым:

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

Для резервного копирования на удалённый хост при помощи SSH, используйте следующий сценарий:

Автоматическое резервное копирование с помощью NetworkManager

Этот сценарий запускает резервное копирование при установлении сетевого соединения.

Сперва создайте сценарий, содержащий подходящие опции команды:

Root должен владеть сценарием (для изучения подробностей см. NetworkManager#Network services with NetworkManager dispatcher (англ.))

Автоматическое резервное копирование с помощью systemd и inotify

Вместо запуска резервного копирования по расписанию, например при помощи cron, можно запускать резервное копирование каждый раз, когда в один из файлов, подлежащих резервному копированию, вносятся изменения. Модули systemd.path используют inotify для мониторинга файловой системы, и могут быть использованы в связке с файлами systemd.service для запуска любого процесса (в данном случае резервного копирования при помощи rsync) на основе события файловой системы.

Дифференциальное резервное копирование в течение недели

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

Сперва создайте сценарий, содержащий подходящие командные опции:

Резервное копирование при помощи создания снимков

Эта же идея может использоваться для поддержания дерева снимков ваших файлов. Другими словами, каталога с копиями файлов, упорядоченных по дате. Копии создаются при помощи жёстких ссылок, то есть только изменённые файлы будут занимать пространство. В общих чертах, эта идея лежит в основе TimeMachine от Apple.

Чтобы сделать всё намного проще, этот сценарий можно запускать как модуль systemd/Timers.

Полная резервная копия системы

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

Этот подход хорошо подходит для переноса существующей установки на новый жёсткий диск или SSD.

Запустите следующую команду с правами root, чтобы удостовериться, что rsync имеет доступ ко всем системным файлам и может сохранять владельцев:

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

Восстановление резервной копии

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

Клонирование файловой системы

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

Режим архива rsync неплохо подходит для этой цели, но он не создаёт резервную копию специальных метаданных файловой системы, таких как списки контроля доступа, расширенные атрибуты или свойства разреженных файлов. Для успешного копирования на уровне файловой системы, некоторые дополнительные опции должны быть включены:

Их значение (из справочной страницы):

Полученная копия может быть легко прочитана заново и проверена (например после попытки восстановления файлов) на уровне файловой системы с помощью рекурсивной опции diff :

Возможно осуществить успешный переход на другую файловую систему, используя rsync как описано в этой статье и обновив fstab и загрузчик, как описано в Перенос установки на новое оборудование (англ.). Это в сущности позволяет поменять любую корневую файловую систему на любую другую.

Демон rsync

Использование на клиенте, например перечисление содержимого сервера:

перемещение файла с клиента на сервер:

Подумайте об использовании iptables для открытия порта 873 и аутентификации пользователей.

Пример конфигурации

Раздача файлов по списку

Все промежуточные пути необходимы в списке файлов, если не используется шаблон *** :

Источник

Примеры синхронизации Rsync

Потребность передачи файлов между серверами и компьютерами возникает довольно часто, особенно при администрировании нескольких устройств. Обычно для этих целей удобно использовать ssh и scp, но если файл очень большой, а изменена была только небольшая его часть, или вы хотите настроить постоянную автоматическую синхронизацию, то scp уже явно неидеальный вариант. Для этого существуют специальные утилиты. В этой статье мы рассмотрим одну из них. А именно будет рассмотрена rsync синхронизация в linux.

Возможно использование rsync для синхронизации файлов, каталогов, при этом может применяться сжатие и шифрование. Программа впервые была применена в июне 1996 года, она разработана Эндрю Тридгелом и Полом Маккерасом. Rsync синхронизация выполняется по протоколу RSYNC, который специально разработан не просто для передачи файлов между двумя компьютерами, а для их синхронизации. Если точнее, то передается не файл полностью, а только то, что было изменено.

Как вы уже поняли, в этой статье мы рассмотрим rsync примеры синхронизации, настройку rsync, а также ее основные возможности и опции.

Особенности Rsync

Давайте сначала рассмотрим примечательные особенности Rsync:

Синтаксис Rsync

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

sudo apt-get install rsync

А теперь, уже по традиции подобных статей, рассмотрим синтаксис команды rsync:

$ rsync опции источник приемник

В качестве источника и приемника может выступать удаленная или локальная директория. Например, ssh, rsync, samba сервер или локальная директория. Опции задают дополнительные параметры rsync.

Опции Rsync

Теперь давайте кратко рассмотрим параметры rsync. Здесь перечислены не все опции. Для более подробной информации смотрите man rsync:

Настройка сервера Rsync

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

Рассмотрим минимальную настройку сервера rsync, для того чтобы могло быть выполнено копирование файлов rsync. Он позволит нам не только синхронизировать файлы на машину, но и получать их от туда.

Сначала создайте конфигурационный файл со следующим содержимым:

sudo vi /etc/rsyncd.conf

pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsync.log
[share]
path = /tmp/share/
hosts allow = 192.168.56.1
hosts deny = *
list = true
uid = root
gid = root
read only = false

rsync что это такое. Смотреть фото rsync что это такое. Смотреть картинку rsync что это такое. Картинка про rsync что это такое. Фото rsync что это такое

Здесь мы задаем путь к нашей папке для синхронизации, разрешаем доступ к серверу только с ip адреса (192.168.56.1) и запрещаем все остальные подключения. Параметры uid и gid указывают пользователя и группу, от которых будет запущен демон. Лучше не использовать root, а указать пользователя nobody и выдать ему права на ту папку, в которую будет выполняться синхронизация каталогов rsync.

Настройка rsync завершена, остается сохранить файл, запустить сервер rsync и добавить его в автозагрузку:

sudo systemctl start rsync

sudo systemctl enable rsync

rsync что это такое. Смотреть фото rsync что это такое. Смотреть картинку rsync что это такое. Картинка про rsync что это такое. Фото rsync что это такое

Сервер будет предоставлять доступ к файлам без запроса пароля.

Примеры синхронизации Rsync

Дальше давайте рассмотрим использование rsync, примеры синхронизации.

1. Копирование и синхронизация файлов на локальном компьютере

Rsync позволяет синхронизировать файлы и папки в пределах одной машины. Давайте сначала рассмотрим использование rsync для синхронизации файла на локальном компьютере:

rsync что это такое. Смотреть фото rsync что это такое. Смотреть картинку rsync что это такое. Картинка про rsync что это такое. Фото rsync что это такое

rsync что это такое. Смотреть фото rsync что это такое. Смотреть картинку rsync что это такое. Картинка про rsync что это такое. Фото rsync что это такое

2. Синхронизация папок на локальной машине

Синхронизация папок rsync выполняется так же просто, как и файлов:

rsync что это такое. Смотреть фото rsync что это такое. Смотреть картинку rsync что это такое. Картинка про rsync что это такое. Фото rsync что это такое

3. Синхронизация с удаленным сервером

Ненамного сложнее синхронизировать файлы с удаленным сервером. Скопируем локальную папку documents, на удаленный сервер:

По умолчанию rsync попытается использовать транспорт ssh. Если вы хотите использовать ранее созданный сервер rsync, нужно указать это явно:

Точно также можно синхронизировать файлы с rsync из удаленного сервера:

Адрес удаленного сервера записывается в таком формате:

имя_пользователя@ адрес_машины /папка/на/удаленной_машине

Синхронизация папок rsync будет выполняться на стандартном порту.

4. Синхронизация файлов по SSH

Синхронизация файлов rsync с удаленного сервера по ssh будет выглядеть вот так:

Если вы используете другой порт для ssh, то здесь его можно указать:

rsync что это такое. Смотреть фото rsync что это такое. Смотреть картинку rsync что это такое. Картинка про rsync что это такое. Фото rsync что это такое

А теперь передадим данные на тот же сервер:

5. Просмотр прогресса при синхронизации

Для просмотра прогресса копирования файла с одной машины на другую используется опция progress:

6. Синхронизация не всех файлов в rsync

Опции include и exclude позволяют указать какие файлы нужно синхронизировать, а какие исключить. Опции работают не только с файлами но и с директориями.

Например, скопируем все файлы, начинающиеся на букву R:

7. Удаление при синхронизации

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

8. Максимальный размер файлов

9. Удаление исходных файлов

Есть возможность удалять исходные файлы после завершения синхронизации с удаленным сервером:

Таким образом, файл backup.tar будет удален после завершения копирования в папку /tmp/backups.

10. Режим симуляции rsync

Если вы новичок, и еще не использовали rsync, то возможно захотите посмотреть как отработает команда без применения реальных действий в файловой системе. Для этого есть опция dry-run. Команда только выведет все выполняемые действия в терминал, без выполнения реальных изменений:

11. Ограничить скорость передачи

12. Автоматическая синхронизация папок rsync

Можно расписать автоматическую синхронизацию с помощью cron. Но в случае доступа к серверу по SSH необходимо будет создать ключ и загрузить его на сервер, чтобы аутентификация проходила без запроса пароля.

Загружаем ключ на сервер к с которым собираемся синхронизироваться:

Теперь можем переходить к настройке расписания cron. Будем запускать синхронизацию каждый день:

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

Выводы

Теперь вы знаете все что нужно, чтобы настройка rsync была выполнена правильно. Мы рассмотрели некоторые примеры rsync синхронизации. И теперь вы можете использовать все это для решения своих задач. Я упустил какую-то полезную информацию или у вас остались вопросы? Напишите в комментариях!

Нет похожих записей

Оцените статью:

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

28 комментариев

На каком основании вы не указываете реальных авторов всех статей на вашем «сайте».
У вас нет ни единой своей статьи, а только рерайт других авторов на коих вы и не пытаетесь поставить ссылки.
Даже при беглом просмотре «ваших» статей понятно, что это максимум не очень хорошо адаптированный машинный перевод, потому как «ваши» объяснения той или иной темы обрывочны и абсолютно не компетенты.

Проставьте ссылки на авторство в положенной форме.

У вас четверо суток с момента написания данного коментария.

Это слишком громкое заявление. Если статья является точным переводом источника, то ссылка на источник размещена внизу статьи. Если я ее адаптировал и переделал, то естественно, ссылка не размещается из соображений СЕО.

Принято госорить репринт, а не рерайт.

אֵלִיָּה אֵלִיָּהוּ Если не разобрался за 3 месяца напиши мне. Попробую помочь. Пиши на email Teemitze@gmail.com Надеюсь оставив свой E-mail не нарушил правила сайта.

автор же писал » Для более подробной информации смотрите man rsync».

Вряд ли это требует ответа на вопрос зачем

А если мне нужно синхронизировать два каталога в обе стороны, т.е. чтоб как yandex.disk, при изменение в одном источнике синхронизировались все, как это можно сделать?

Здравствуйте! Подскажите пожалуйста, имеется домашний сервер 18.04, 2 диска. Как правильно настроить автоматическую синхронизацию с одного диска на другой?

Довольно редко пишу комментарии. Но просто не смог не удержаться, чтобы не поблагодарить Вас за эту статью. Благодаря ей настроил синхронизацию файлов с боевого сервера на запасной. После падения ihor (меня не задело) как-то задумался о нормальных бекапах.

Осталось настроить репликацию БД. Искал у Вас на сайте подходящую статью, но не нашел, к сожалению. Если вдруг что-то подходящее есть, поделитесь, пожалуйста, ссылкой.

Доброго дня. Огромное спасибо за прекрасные руководства! Благодаря вашему сайту настроил все сетевые шары на своих серверах с CentOS.
Сейчас пытаюсь разделить фронтенд и файловый сервер на DLE, соответственно папка с загруженными файлами должна синхронизироваться со вторым сервером. Подскажите, можно ли запускать RSYNC по крону каждую минуту? И если будет синхронизироваться большой файл, который будет передаваться несколько минут, не будет ли в итоге ежеминутно запускаться новый процесс RSYNC с передачей этого файла? Или возможно есть другой способ синхронизировать папки на разных серверах в режиме реального времени?

Думаю, что можно только если следующий запуск будет делаться после завершения предыдущего. Или можно использовать сетевые файловые системы, тот же GlusterFS или CephFS. Может сейчас и новее что-то придумали.

Спасибо за ответ, продолжу гуглить по ключевым словам GlusterFS или CephFS 🙂

Здравствуйте, подскажите решение.
Есть такая структура папок и нужно исключить только ‘dir1/dir3’.

Получиться такая структура (исключаются все ‘dir3’)
dir1
-dir2
—dir1
—dir2
-dir4
—dir1
—dir2

Добрый день. Есть такой вопрос: если я настраиваю синхронизацию файлов в «локальную» папку (которая, на самом деле, вовсе не локальная, а монтированная через cifs «шара» windows-машины), то не возникнет ли проблем с синхронизацией, и как вообще будут сохраняться атрибуты файлов? Может быть в таком случае стоит особенно обратить внимание на какие-то ключи?

То есть корректный файл filter.cfg должен быть таким:
+ video/saved
— video/*

(Продолжение после публикации коммента)

Решаем, что резервировать будем только записи с корпоративов (чтобы было чем шантажировать коллег, ага). На радостях редактируем filter.cfg, который приобретает вид:
+ video/saved/corporative
— video/*

Запускаем, и видим на целевом носителе пустую папку video:

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *