yandex
Калькулятор ценТарифыАкцииДокументацияО насКарьера в Cloud.ruНовостиЮридические документыКонтактыРешенияРеферальная программаКейсыПартнерство с Cloud.ruБезопасностьEvolutionAdvancedEvolution StackОблако VMwareML SpaceВ чем отличия платформ?БлогОбучение и сертификацияМероприятияИсследования Cloud.ruЛичный кабинетВойтиЗарегистрироватьсяEvolution ComputeEvolution Managed KubernetesEvolution Object StorageEvolution Managed PostgreSQL®Облако для мобильных и веб‑приложенийАналитика данных в облакеEvolution Bare MetalEvolution SSH KeysEvolution ImageСайт в облакеEvolution DNSEvolution VPCEvolution Load BalancerEvolution Magic RouterEvolution DiskХранение данных в облакеEvolution Container AppsEvolution Artifact RegistryEvolution Managed ArenadataDBEvolution Managed TrinoEvolution Managed SparkАналитика данных в облакеEvolution ML InferenceEvolution Distributed TrainEvolution ML FinetuningEvolution NotebooksCurator Anti-DDoSCurator Anti‑DDoS+WAFUserGate: виртуальный NGFWStormWall: Anti-DDoSEvolution TagsEvolution Task HistoryCloud MonitoringCloud LoggingАренда GPUAdvanced Object Storage ServiceAdvanced Elastic Cloud ServerAdvanced Relational Database Service for PostgreSQLРазработка и тестирование в облакеAdvanced Image Management ServiceAdvanced Auto ScalingDirect ConnectCDNCross-platform connectionAdvanced Enterprise RouterAdvanced Cloud Backup and RecoveryAdvanced Data Warehouse ServiceAdvanced Elastic Volume ServiceAdvanced Cloud Container EngineAdvanced FunctionGraphAdvanced Container Guard ServiceAdvanced Software Repository for ContainerAdvanced Document Database Service with MongoDBAdvanced Relational Database Service for MySQLAdvanced Relational Database Service for SQL ServerCloud AdvisorAdvanced Server Migration ServiceAdvanced Data Replication ServiceAdvanced API GatewayAdvanced CodeArtsAdvanced Distributed Message Service for KafkaAdvanced Distributed Message Service for RabbitMQAdvanced DataArts InsightAdvanced CloudTableAdvanced MapReduce ServiceAdvanced Cloud Trace ServiceAdvanced Application Performance ManagementAdvanced Identity and Access ManagementAdvanced Enterprise Project Management ServiceVMware: виртуальный ЦОД с GPUVMware: виртуальный ЦОДУдаленные рабочие столы (VDI)VMware: сервер Bare MetalИнфраструктура для 1С в облакеУдаленные рабочие столыМиграция IT‑инфраструктуры в облако3D-моделирование и рендерингVMware: резервное копирование виртуальных машинVMware: резервный ЦОДVMware: резервное копирование в облакоVMware: миграция виртуальных машин
Поиск
Связаться с нами

Linux Rsync: что это, как настроить и применять

В Linux-окружении есть инструмент Rsync, который делает синхронизацию данных быстрой и предсказуемой. Он умеет работать с большими объемами информации, поддерживает шифрование через SSH и позволяет управлять копированием файлов без сложных операций. Rsync подходит для ежедневных бэкапов и нетипичных инфраструктурных задач. Рассказываем, как работать с файлами с помощью этой утилиты. 

Инструкции
Иллюстрация для статьи на тему «Linux Rsync: что это, как настроить и применять»
Продукты из этой статьи:
Иконка-Evolution Compute
Evolution Compute

Возможности и особенности Rsync

Rsync (Remote Sync) — это утилита командной строки для синхронизации и передачи файлов как между директориями на одном устройстве, так и между удаленными хостами. Инструмент популярен благодаря своим возможностям, применимым при работе с большими файлами и медленными сетевыми каналами.

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

  • Дельта-алгоритм (Differential Delta Algorithm). Вместо копирования всего файла при обновлении, Rsync определяет и передает получателю только измененные блоки данных. 

  • Рациональное использование сети. Благодаря дельта-алгоритму Rsync минимизирует объем передаваемых данных, что экономит время и пропускную способность сети при работе с большими файлами.

  • Разные режимы работы. Rsync поддерживает три режима: локальный для копирования файлов между каталогами на одном устройстве, удаленный для передачи данных по протоколу SSH, демон-режим для передачи по собственному протоколу Rsync.

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

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

  • Возобновление передачи данных. Если процесс прервался, например, из-за обрыва соединения, Rsync может возобновить процесс с момента остановки.

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

Утилита Rsync Утилита Rsync
Дарим до 20 000 бонусов
Дарим до 20 000 бонусов
4 000 бонусов — физическим лицам, 20 000 бонусов — юридическим

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

Установка на дистрибутивах Linux

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

Установка на Ubuntu, Debian и их производные 

Обновите локальный кэш пакетов:

После обновления списка пакетов выполните команду для установки утилиты:

Убедитесь, что Rsync установлен в той версии, которая нужна:

Если сделали все правильно, после выполнения команды увидите номер версии и данные о лицензии.

Установка на CentOS, RHEL и Fedora

Сначала тоже нужно обновить пакеты:

Для Fedora используйте команду:

Для установки Rsync на CentOS  и RHEL выполните команду:

На Fedora:

Убедитесь, что утилита правильно установлена и работает:

Для удобства — короткая шпаргалка по установке: 

Дистрибутив
Шаг 1: Обновление системы
Шаг 2: Установка Rsync
Шаг 3: Проверка
Ubuntu и Debian
sudo apt update
sudo apt install rsync -y
rsync --version
CentOS и RHEL
sudo yum update -y
sudo yum install rsync -y
rsync --version
Fedora
sudo dnf update -y
sudo dnf install rsync -y
rsync --version

Чтобы утилита работала корректно, настройте SELinux и межсетевой экран:

Статус сервисаСтатус сервиса

Автоматическое обновление Rsync

На Ubuntu и Debian для обновления утилиты используйте команду:

На CentOS, RHEL и Fedora работают две команды:

Синтаксис и опции Rsync

Синтаксис команды Rsync выглядит так: 

Источник — это путь к конкретному файлу или директории, которые хотите скопировать. Назначение — локальное или удаленное хранилище, куда будут скопированы файлы.

Опции, с помощью которых можно работать с файлами:

Опция
Описание
Пример использования
-a или --archive
Сохраняет права доступа к скопированным данным, ссылки, владельцев и группы
rsync -a /source/ /dest/
-v или --verbose
Выводит подробные сведения о процессе копирования
rsync -av /source/ /dest/
-z или --compress
Сжимает данные при передаче по сети
rsync -avz /source/ user@host:/dest/
-h или --human-readable
Показывает размеры файлов в нужном формате
rsync -avh /source/ /dest/
--progress
Показывает процесс копирования файлов
rsync -av --progress /source/ /dest/
-u или --update
Копирует новые файлы или те, что менялись с момента последнего копирования
rsync -avu /source/ /dest/
--delete
Удаляет файлы, которых нет в источнике
rsync -av --delete /source/ /dest/

Настройка Rsync

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

Настройка для локального использования

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

Определите папку или файлы, которые вы хотите скопировать, например:

Укажите папку, куда пойдут скопированные файлы, например:

Выберите режим копирования: 

  • -a — сохраняет структуру папок, права, ссылки и временные метки;

  • -v — выводит сведения о процессе копирования;

  • --progress — показывает прогресс копирования.

Настройте фильтры и исключения, если нужно пропустить файлы и папки. Например:

Проверьте, что Rsync нормально работает:

Автоматизируйте синхронизацию (если нужна регулярность). Пример настройки ежедневной задачи:

Команда каждый день в 22:00 будет запускать синхронизацию без вашего участия. 

Настройка для удаленного использования

Для передачи данных по зашифрованному каналу Rsync используется через SSH. Убедитесь, что можете подключиться к удаленному серверу:

Настройте использование Rsync через SSH и сжатие данных:

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

Настройка Rsync-демона

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

Как настроить демона:

Создайте конфигурационный файл /etc/rsyncd.conf. Базовый вариант выглядит так:

Создайте файл с паролями /etc/rsyncd.secrets. Пример:

Задайте права:

Запустите Rsync-демона:

Настройте подключение к демону:

Примеры использования Rsync

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

Локальная синхронизация

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

Примеры использования: 

  • rsync -av /home/user/docs/ /home/user/backup/docs/ — копирование каталога в другое место с сохранением структуры папок и пользовательских прав доступа;

  • rsync -av --delete /src/folder/ /dest/folder/ — синхронизация двух локальных директорий с удалением файлов, которых уже нет в исходной папке.

Удаленная синхронизация с использованием SSH

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

Примеры:

  • rsync -av -e ssh /local/folder/ user@server:/remote/folder/ — синхронизация локального каталога на устройстве с удаленным сервером;

  • rsync -av -e ssh user@server:/remote/folder/ /local/folder/ — загрузка данных с удаленного сервера на локальное устройство;

  • rsync -av -e "ssh -p 2222" /local/folder/ user@server:/remote/folder/ — передача данных на нестандартный порт SSH.

Специальные случаи использования

Дополнительные сценарии применения Rsync:

Задача
Команда
Расшифровка
Исключить определенные файлы или папки
rsync -av --exclude="*.tmp" --exclude="cache/" /src/ /dest/
Пропускает временные файлы, каталоги или шаблоны
Включить только конкретные типы файлов
rsync -av --include="*.jpg" --exclude="*" /src/ /dest/
Передает указанные файлы, игнорируя остальное
Ограничить скорость передачи данных
rsync -av --bwlimit=5000 /src/ /dest/
Работает с заданным ограничением, что полезно при слабом канале
Показать прогресс выполнения
rsync -av --progress /src/ /dest/
Отображает нюансы передачи файлов
Настроить автоматическую синхронизацию
crontab -e
Создает расписание задач для постоянного выполнения

Расширенные настройки и оптимизация

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

Оптимизация производительности

Чтобы утилита работала быстрее, уменьшите количество лишних операций и используйте параметры для ускорения передачи данных. Например: 

  • rsync -av --no-perms --no-owner --no-group /src/ /dest/ — отключение проверки прав доступа и владельцев файлов, если они не нужны;

  • rsync -avz /src/ /dest/ — сжатие данных при передаче по сети;

  • rsync -av -e "ssh -T -c aes128-ctr" /src/ /dest/ — синхронизация файлов по протоколу SSH с легким шифровальным алгоритмом;

  • rsync -av --size-only /src/ /dest/ — сверка передаваемых файлов с помощью размеров вместо контрольной суммы или даты и времени.

Evolution Compute
Подключайте дополнительные диски и подсети
Evolution Compute

Работа с большими данными

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

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

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

Команда для ограничения нагрузки на сеть:

Она позволяет синхронизировать большие объемы информации, не забивая канал. 

Команда для синхронизации на основе списка конкретных файлов:

Чтобы удалять данные после передачи, а не в процессе, примените команду:

Эти и другие команды для работы с большими данными — в таблице. 

Цель
Команда Rsync
Описание и применение
Передача только изменившихся блоков больших файлов
rsync -av --partial --inplace /src/ /dest/
Используется, когда в больших файлах меняется часть данных. Позволяет не копировать файлы заново
Ограничение нагрузки на сеть
rsync -av --bwlimit=80000 /src/ /dest/
Ограничивает скорость передачи данных до указанного значения, чтобы не перегружать канал связи
Создание предварительного списка файлов
rsync -av --files-from=list.txt /src/ /dest/
Ускоряет процесс синхронизации, используя заранее подготовленный список файлов для передачи
Удаление данных после передачи, а не в процессе
rsync -av --delete-delay /src/ /dest/
Обеспечивает безопасное удаление устаревших файлов, чтобы избежать потери нужных данных при сбое
Сжатие данных при передаче
rsync -avz /src/ /dest/
Сжимает передаваемую информацию для экономии трафика при медленных сетевых соединениях
Отображение прогресса передачи больших файлов
rsync -av --progress /src/ /dest/
Позволяет отслеживать процесс передачи по каждому файлу и видеть показатели скорости
Продолжение прерванной передачи
rsync -av --partial /src/ /dest/
Возобновляет передачу больших файлов с момента остановки, если соединение прервалось
Исключение ненужных файлов
rsync -av --exclude='*.tmp' /src/ /dest/
Не передает временные, кэшированные или ненужные файлы, экономя время и трафик
Инкрементное резервное копирование
rsync -av --backup --backup-dir=/backup/ /src/ /dest/
Передает только изменившиеся файлы и сохраняет старые версии в отдельной директории резервного копирования

Заключение

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

При использовании Rsync в облачной инфраструктуре, особенно на виртуальных машинах, инструмент становится критичным компонентом стратегии резервного копирования и синхронизации данных. С помощью сервиса Evolution Compute вы можете развертывать виртуальные машины с полной поддержкой Rsync для синхронизации данных между инстансами, создания резервных копий на выделенных хранилищах и организации защищенной передачи данных через SSH-туннели. Сервис предоставляет API и Terraform-провайдер для автоматизации процессов синхронизации, позволяя управлять резервным копированием и миграцией данных как вручную через интерфейс, так и программно через инструменты Infrastructure as Code.

Продукты из этой статьи:
Иконка-Evolution Compute
Evolution Compute
29 декабря 2025

Вам может понравиться