Скидка 50% на все тарифы, ограниченное время. От $2.48/mo
Осталось 10 мин
Безопасность и сети

Как использовать Rsync в Linux? Rsync на удалённый сервер 💻📥

Лили Карнелл By Лили Карнелл 10 мин чтения Обновлено 16 апр. 2023 г.
rsync на удалённый сервер

Любому пользователю — будь то администратор или обычный участник — рано или поздно приходится создавать резервные копии файлов или синхронизировать их между несколькими системами. Если при этом каждый раз нужно перезаписывать все файлы, это отнимает много времени и сил. Именно здесь на помощь приходит инструмент Linux Rsync для работы с удалённым сервером. В этом руководстве вы познакомитесь с наиболее полезными командами Rsync и узнаете, как использовать его возможности для быстрой и безопасной передачи данных.

Что такое утилита Rsync?

Удаленная синхронизация (Rsync) — широко известная команда Linux/Unix для копирования и синхронизации файлов и каталогов как локально, так и по удалённому доступу. С помощью Rsync можно выполнять различные операции с данными: синхронизацию, копирование и создание резервных копий. Кроме того, вы можете сделать зеркало своей системы Linux на другой машине.

Ключевое преимущество Rsync при работе с удалённым сервером — высокая скорость передачи файлов. При обмене данными между двумя источниками утилита учитывает только различия между ними. Иными словами, Rsync не тратит время на передачу уже существующих данных, а сравнивает два состояния системы Linux и копирует лишь изменения.

Зачем использовать Rsync?

Инструментов для резервного копирования существует немало. Вопрос в том, чем Rsync выделяется на фоне других утилит и команд.

Например, для создания локальной копии сайта можно воспользоваться Протокол передачи файлов (FTP) , а для передачи файлов — SCP (протокол безопасного копирования) . Однако у обоих инструментов есть недостатки. FTP не шифрует данные при передаче, что неприемлемо с точки зрения безопасности. SCP такой проблемы лишён, зато работает медленнее: для передачи данных он создаёт отдельный туннель, что увеличивает время операции.

В качестве альтернативного решения этих проблем можно использовать Rsync для удалённого сервера с шифрованием на основе ключей (называемым Rsync SSH или Rsync через SSH). Такой подход исключает передачу дублирующихся данных и использует ключ SSH. Кроме того, Rsync сжимает данные при отправке и распаковывает при получении, что снижает потребление пропускной способности.

Как установить Rsync?

Скорее всего, Rsync уже установлен в вашей системе, но рассмотрим этот процесс подробнее. Прежде чем начать, убедитесь, что SSH установлен на обоих серверах — источнике и назначении, — так как мы будем использовать Rsync через SSH.

Шаг 1: Проверка версии SSH

Проверить версию SSH можно следующей командой:

ssh -V

Для синхронизации с удалённым сервером через Rsync вам понадобятся локальный сервер (источник) и удалённый сервер. Также убедитесь, что на локальном сервере есть права администратора (sudo).

Шаг 2: Установка Rsync на Linux

Следующая команда установит Rsync на Ubuntu, Linux Mint и Debian:

sudo apt install rsync -y

Если вы используете другие дистрибутивы Linux — например, Fedora, CentOS, AlmaLinux или Red Hat — выполните следующую команду для установки Rsync:

sudo dnf install rsync

Примечание: apt — удобный менеджер пакетов для дистрибутивов на основе Debian.

Шаг 3: Запуск Rsync

Теперь нужно запустить Rsync и добавить его в автозагрузку с помощью следующих команд:

sudo systemctl start rsync 
sudo systemctl enable rsync

Шаг 4: Проверка установки Rsync

Выполните следующую команду, чтобы убедиться в корректности установки Rsync и узнать, какая версия используется в вашей системе Linux:

rsync --version

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

Как создавать резервные копии с помощью Rsync через SSH?

Создание инкрементных резервных копий — один из распространённых сценариев использования Rsync через SSH. Изучите следующую команду, чтобы понять, как это работает:

rsync -av -e ssh /sourceDir/ user@remote:/path/to/destinationDir

Выполнение приведённой команды синхронизирует sourceDir и destinationDir. Команда поддерживает ряд параметров, с которыми стоит ознакомиться, например -a (archive) и -v (verbose). Обратите внимание на параметр -e ssh Данная опция требует, чтобы соединение Rsync использовало протокол SSH.

Если вы хотите, чтобы соединение SSH принималось через порт, отличный от стандартного (порт 22), необходимо указать номер порта после -e ssh. Рассмотрим следующую команду, чтобы понять, как это работает.

rsync -av -e ssh 1998 sourceDir/ user@remote:/path/to/destinationDir

В приведённой команде предполагается, что вместо порта 22 мы используем порт 1998 для SSH.

Rsync на удалённый сервер через SSH поддерживает дополнительные опции, которые могут быть весьма полезны. Например, опция –partial позволяет возобновить прерванную передачу с того места, где она остановилась. Узнать прогресс текущей передачи файлов можно с помощью опции –progress Кроме того, утилита Rsync для работы с удалённым сервером позволяет использовать эти две возможности одновременно. Для этого достаточно добавить флаг -p в командную строку.

rsync -avP  -e ssh /sourceDir/ user@remote:/path/to/destinationDir

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

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

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

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

rsync [options] [Source] [Destination]

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

Предположим, нам нужно синхронизировать или скопировать файл из директории рабочего стола (называемой Cloudzy) в папку /home/Public ; вот что нужно ввести:

rsync -zvh /desktop/Cloudzy/myfile.pdf /home/Public

Приведённая команда Rsync включает три опции: -zvh; используя -z, файл будет сжат в процессе передачи. опция v отвечает за подробный вывод, а опция h позволяет отображать результаты в удобочитаемом для человека формате.

Копирование директорий локально

Чтобы скопировать директорию рабочего стола (называемую Cloudzy) в папку /home/Public папку, введите следующую команду:

rsync -zavh /desktop/Cloudzy/myfile.pdf /home/Public

Параметр -a опция в этой команде архивирует директории и файлы в процессе синхронизации.

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

ls -ld /home/Public

Рекурсивная синхронизация файлов и директорий локально (Recursive Rsync)

Что если в директории /desktop/Cloudzyнаходится несколько директорий и файлов, которые нужно рекурсивно скопировать с помощью команды Rsync Linux?

В таком случае используйте опцию -r для рекурсивной синхронизации локальных файлов и директорий. Также можно использовать опцию архивирования (-a) , которая поддерживает рекурсивное копирование и ряд других сценариев. Ознакомьтесь со следующей командой, чтобы разобраться с рекурсивными командами Rsync.

rsync -zrvh /desktop/Cloudzy /home/Public

Or

rsync -zrvh /desktop/Cloudzy /home/Public

Копирование директорий и файлов с локальной машины на удалённый сервер

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

Предположим, нам нужно скопировать папку (/desktop/Cloudzy/новаяпапка) с локальной машины на удалённую систему (с 192.168.1.79) в разделе /mycpt; вот пример того, как это работает:

rsync -zarvh /desktop/Cloudzy/newfolder [email protected]:/mycpt

Как скопировать директории без файлов с помощью Rsync?

Иногда может потребоваться использовать возможности Rsync для копирования директорий без файлов на удалённый сервер или с него на локальную машину.

В этой статье мы используем удалённую систему по адресу 192.168.1.79. Предположим, она находится в /mycpt папке, и нужно скопировать /desktop/Cloudzy директорию с локальной системы, не включая её файлы. Введите следующую команду:

rsync -av -f"+ */" -f"- *" /desktop/Cloudzy [email protected]:/mycpt/

Другие полезные команды Rsync

Ниже рассмотрим несколько дополнительных команд Rsync, которые могут пригодиться на практике.

Ограничение максимального размера файла при передаче через Rsync

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

rsync -avzhe ssh --max-size='100k' /desktop/Cloudzy [email protected]:/home/Public

Ограничение минимального размера файла при передаче через Rsync

Аналогично максимальному, можно задать минимальный размер передаваемого файла. В приведённой ниже команде минимальный размер файла установлен равным 10k:

rsync -avzhe ssh --min-size='10k' /desktop/Cloudzy [email protected]:/home/Public

Удаление файлов из источника после завершения синхронизации

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

rsync --remove-source-files -zvh /desktop/Cloudzy [email protected]:/home/Public

Пробный запуск

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

rsync --dry-run --remove-source-files -zvh /desktop/Cloudzy [email protected]:/home/Public

Итог: использование команд Rsync

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

Хостинг Linux VPS

Выберите экономный или премиальный Linux VPS для хостинга сайта или удалённого рабочего стола по минимальной цене. VPS работает на базе Linux KVM для повышения эффективности и использует производительное железо с хранилищем NVMe SSD для максимальной скорости.

Читать далее

Чтобы получить максимум от этой операционной системы, воспользуйтесь Linux VPS решением от Cloudzy с планами хостинга на базе KVM. Мы предлагаем высокопроизводительные сервисы VPS с аптаймом 99.95%, стабильной работой, минимальной задержкой, дата-центрами по всему миру (12 локаций), сверхбыстрым хранилищем SSD и круглосуточной технической поддержкой. Вы можете начать использовать Linux VPS от $4.95 и перейти на более продвинутый план по мере необходимости.

Часто задаваемые вопросы

Какой TCP порт использует Rsync?

SSH по умолчанию использует порт 22. Соответственно, при работе rsync через SSH используется именно этот порт. При использовании демона Rsync задействуется порт 873.

Что такое Rsync?

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

Поделиться

Другие статьи блога

Читать дальше.

Обложка руководства Cloudzy по настройке MikroTik L2TP VPN: ноутбук подключается к серверной стойке через светящийся сине-золотой цифровой туннель с иконками щитов.
Безопасность и сети

Настройка MikroTik L2TP VPN (с IPsec): руководство по RouterOS (2026)

В этой конфигурации MikroTik L2TP VPN протокол L2TP отвечает за туннелирование, а IPsec — за шифрование и целостность данных. Их совместное использование даёт совместимость с нативными клиентами без сторонних реш

Рекса СайрусРекса Сайрус 9 мин. чтения
Окно терминала с предупреждением SSH об изменении идентификатора удалённого хоста, заголовок руководства по исправлению ошибки и брендинг Cloudzy на тёмно-бирюзовом фоне.
Безопасность и сети

Предупреждение: идентификатор удалённого хоста изменился. Как это исправить

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

Рекса СайрусРекса Сайрус 10 мин чтения
Иллюстрация к руководству по устранению неполадок сервера DNS: предупредительные символы и синий сервер на тёмном фоне, тема — ошибки разрешения имён Linux
Безопасность и сети

Временная ошибка разрешения имён: что это значит и как её исправить?

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

Рекса СайрусРекса Сайрус 12 мин чтения

Готовы к деплою? От $2.48/мес.

Независимый облачный провайдер с 2008 года. AMD EPYC, NVMe, 40 Gbps. Возврат средств в течение 14 дней.