Rsync ������� ������������� windows linux

Содержание
  1. Как использовать Rsync для локальной и удаленной передачи данных и синхронизации
  2. How to Use Rsync for Local and Remote Data Transfer and Synchronization
  3. В этом руководстве мы покажем вам, как использовать rsync на практических примерах и подробные объяснения наиболее распространенных вариантов rsync.
  4. Установка Rsync
  5. Установите Rsync в Ubuntu и Debian
  6. Установите Rsync на CentOS и Fedora
  7. Синтаксис команды Rsync
  8. Основное использование Rsync
  9. Как использовать Rsync для синхронизации данных с / на удаленный компьютер
  10. Исключить файлы и каталоги
  11. Вывод
  12. rsync (Русский)
  13. Contents
  14. Установка
  15. Фронтенды
  16. Как альтернатива cp/mv
  17. Предостережение о замыкающем слэше
  18. Как утилита для резервного копирования
  19. Автоматическое резервное копирование
  20. Автоматическое резервное копирование по SSH
  21. Автоматическое резервное копирование с помощью NetworkManager
  22. Автоматическое резервное копирование с помощью systemd и inotify
  23. Дифференциальное резервное копирование в течение недели
  24. Резервное копирование при помощи создания снимков
  25. Полная резервная копия системы
  26. Восстановление резервной копии
  27. Клонирование файловой системы
  28. Демон rsync
  29. Пример конфигурации
  30. Раздача файлов по списку

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

How to Use Rsync for Local and Remote Data Transfer and Synchronization

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

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

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

Установка Rsync

rsync Утилита предварительно установлена на большинстве дистрибутивов и MacOS Linux. Вы можете проверить, установлен ли он в вашей системе, набрав:

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

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

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

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

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

В rsync полезности выражение принимает следующий вид:

  • 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В следующем примере мы исключая node_modules и tmp каталоги , которые расположены внутри src_directory :

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

Вывод

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

Источник

rsync (Русский)

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

Contents

Установка

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

Фронтенды

  • Grsync — GTK-фронтенд.

https://www.opbyte.it/grsync/ || grsync

  • gutback — обёртка над rsync, написанная на Shell.

https://github.com/gutenye/gutbackup || gutbackupAUR

  • JotaSync — графический пользовательский интерфейс Java Swing для rsync со встроенным планировщиком.

https://trixon.se/projects/jotasync/ || jotasyncAUR

  • luckyBackup — Qt-фронтенд, написанный на C++.

http://luckybackup.sourceforge.net/index.html || luckybackupAUR

Другие утилиты, использующие rsync: rdiff-backup и osync AUR .

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

rsync может использоваться как продвинутая альтернатива команде cp или mv , особенно при копировании больших файлов.

Опция -P эквивалентна —partial —progress , которая оставляет частично перемещённые файлы и показывает шкалу прогресса во время перемещения.

Используйте опцию -r / —recursive для рекурсивного обхода каталогов.

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

Передача файлов по сети по умолчанию использует протокол SSH и хост может быть как реальным именем хоста, так и предопределённым профилем/псевдонимом из .ssh/config .

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

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

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

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

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

копирует все файлы из «источник/» напрямую в «назначение», без промежуточного каталога — так же, как при вызове

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

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

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

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

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

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

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

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

-a означает, что файлы должны быть архивированы, то есть большинство их характеристик сохранятся (но не список контроля доступа, жёсткие ссылки или расширенные атрибуты, такие как их возможности) —delete означает, что файлы, удалённые в источнике должны быть удалены и из резервной копии

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

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

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

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

-e ssh указывает rsync использовать SSH пользователь пользователь на хост -a включает опции -rlptgoD (рекурсивно, ссылки, разрешения, времена, группы, владелец, устройства)

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

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

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

-a включает опции -rlptgoD (рекурсивно, ссылки, разрешения, времена, группы, владелец, устройства) —files-from считывает относительный путь /каталога/для/резервного/копирования из этого файла —bwlimit ограничивает пропускную способность ввода/вывода; КБайт в секунду

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

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

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

Сперва, создайте файл systemd.path , который будет отслеживать файлы для резервного копирования:

Затем создайте файл systemd.service , который будет активирован при обнаружении изменений. По умолчанию будет запущен файл службы, названный так же, как и модуль пути (в данном случае backup.path ), за исключением расширения .service вместо .path (в данном случае backup.service ).

Теперь запустите/включите backup.path , как обычную службу systemd и она начнёт отслеживать изменения в файлах и автоматически запускать backup.service .

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

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

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

—inplace заставляет —partial обновлять целевые файлы напрямую.

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

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

Этот легко реализуемый базовый сценарий создаёт быстрые инкрементные снимки, используя опцию —link-dest для создания жёстких ссылок на неизменённые файлы:

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

Более продвинутая версия поддерживает актуальную полную резервную копию $SNAP/latest и в случае изменения определённого количества файлов с прошлой полной резервной копии, создаёт снимок $SNAP/$DATETAG текущей полной резервной копии, используя cp -al для создания жёстких ссылок на неизменённые файлы:

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

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

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

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

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

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

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

Опция —exclude исключает файлы, подходящие под заданные шаблоны. Содержимое каталогов /dev , /proc , /sys , /tmp и /run исключено в команде выше т.к. они заполняются при загрузке, несмотря на то, что сами каталоги не создаются. /lost+found зависит от файловой системы. Команда выше зависит расширения скобок в оболочках bash (англ.) и zsh (англ.). При использовании другой оболочки. шаблоны в —exclude должны повторяться вручную. Кавычки в исключаемых шаблонах позволят избежать расширения оболочкой, что важно например при резервном копировании по SSH. Окончание исключаемых путей символом * гарантирует, что сами каталоги будут созданы, если они ещё не существуют.

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

  • Если в вашей системе очень мало памяти, может иметь смысл убрать опцию <; однако это не должно быть проблемой на большинстве современных устройств. Количество жёстких ссылок в файловой системе может быть большим при использовании некоторых программ, например Flatpak. Много жёстких ссылок находится в каталоге /usr/ .
  • Вы можете захотеть добавить опцию rsync —delete , если запускаете его несколько раз для одного и того же каталога. В этом случае, убедитесь, что каталог источника на заканчивается на /* , иначе эта опция затронет файлы внутри подкаталогов источника, но не затронет файлы, находящиеся в самом источнике.
  • Если вы используете разреженные файлы, такие как виртуальные диски, образы Docker и т.п., добавьте опцию -S .
  • Опция —numeric-ids отключит сопоставление имён для групп и пользователей; вместо этого передаваться будут цифровые идентификаторы групп и пользователей. Это полезно при резервном копировании через SSH или при использовании live системы для резервного копирования другого системного диска.
  • Выбрав опцию —info=progress2 вместо -v , вы увидите информацию об общем прогрессе и скорости передачи вместо списка передаваемых файлов.
  • Для избежания выхода за пределы файловой системы при рекурсивном обходе, добавьте опцию -x / —one-file-system . Она предотвратит резервное копирование любых точек монтирования в иерархии.

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

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

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

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

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

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

Кроме того, используйте -x , если другие файловые системы, которые желаете исключить из копии, примонтированы в дерево.

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

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

Демон rsync

rsync можно запускать на сервере в качестве демона, слушающего порт 873 .

Отредактируйте шаблон /etc/rsyncd.conf , настройте общий доступ и запустите rsyncd.service .

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

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

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

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

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

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

Источник

Читайте также:  Chrome apps download windows
Оцените статью