Если вы ищете способ быстро и безопасно копировать файлы между компьютерами и серверами или создавать резервные копии, то вам поможет программа rsync. Она широко используется в Linux для синхронизации данных и обладает высокой скоростью и надежностью.
В этой статье я расскажу, как установить и настроить rsync на популярных дистрибутивах Linux — CentOS и Ubuntu.
- Как установить rsync в Linux
- Базовое использование и доступные параметры rsync
- Настройка rsync в Linux
Что такое rsync?
rsync — это утилита командной строки, которая позволяет передавать файлы и папки между компьютерами или сохранять их копии.
Она умеет передавать только измененные части файлов, что делает процесс очень быстрым. Также rsync поддерживает шифрование и авторизацию, что обеспечивает безопасность данных.
Как установить rsync в Linux
Установка rsync очень проста и зависит от вашей операционной системы.
Установка на CentOS
Откройте терминал и введите команду для установки:
[root@centos ~]# dnf install rsync -y
флаг -y отключает запрос подтверждения установки.
Пакетный менеджер найдет репозиторий (baseos) в котором есть запрашиваемая утилита, скачает и установит ее. Пример вывода:
[root@centos ~]# dnf install rsync -y
Последняя проверка окончания срока действия метаданных: 0:00:36 назад,
Сб 07 июн 2025 04:17:33.
Зависимости разрешены.
====================================================================
Пакет Архитектура Версия Репозиторий Размер
====================================================================
Установка:
rsync x86_64 3.2.5-3.el9 baseos 408 k
Результат транзакции
====================================================================
Установка 1 Пакет
Объем загрузки: 408 k
Объем изменений: 767 k
Загрузка пакетов:
rsync-3.2.5-3.el9.x86_64.rpm 237 kB/s | 408 kB 00:01
--------------------------------------------------------------------
Общий размер 162 kB/s | 408 kB 00:02
Проверка транзакции
Проверка транзакции успешно завершена.
Идет проверка транзакции
Тест транзакции проведен успешно.
Выполнение транзакции
Подготовка : 1/1
Установка : rsync-3.2.5-3.el9.x86_64 1/1
Запуск скриптлета: rsync-3.2.5-3.el9.x86_64 1/1
Проверка : rsync-3.2.5-3.el9.x86_64 1/1
Установлен:
rsync-3.2.5-3.el9.x86_64
Выполнено!
[root@centos ~]#
Теперь проверим, что программа установилась, запросив ее версию:
[root@centos ~]# rsync --version
rsync version 3.2.5 protocol version 31
Copyright (C) 1996-2022 by Andrew Tridgell, Wayne Davison, and others.
Web site: https://rsync.samba.org/
Capabilities:
64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
socketpairs, symlinks, symtimes, hardlinks, hardlink-specials,
hardlink-symlinks, IPv6, atimes, batchfiles, inplace, append, ACLs,
xattrs, optional protect-args, iconv, prealloc, stop-at, no crtimes
Optimizations:
SIMD-roll, no asm-roll, openssl-crypto, no asm-MD5
Checksum list:
md5 md4 none
Compress list:
zstd lz4 zlibx zlib none
rsync comes with ABSOLUTELY NO WARRANTY. This is free software, and you
are welcome to redistribute it under certain conditions. See the GNU
General Public Licence for details.
[root@centos ~]#
Установка на Ubuntu
В Ubuntu пакет носит такое же название, поэтому различие только в используемом пакетном менеджере. Используйте следующую команду для установки:
waky@lubuntu:~$ sudo apt install rsync
Пример вывода:
waky@lubuntu:~$ sudo apt install rsync
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Suggested packages:
python3-braceexpand
The following NEW packages will be installed:
rsync
0 upgraded, 1 newly installed, 0 to remove and 54 not upgraded.
Need to get 436 kB of archives.
After this operation, 800 kB of additional disk space will be used.
Get:1 http://ru.archive.ubuntu.com/ubuntu noble-updates/main amd64 rsync amd64 3.2.7-1ubuntu1.2 [436 kB]
Fetched 436 kB in 1s (419 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package rsync.
(Reading database ... 72973 files and directories currently installed.)
Preparing to unpack .../rsync_3.2.7-1ubuntu1.2_amd64.deb ...
Unpacking rsync (3.2.7-1ubuntu1.2) ...
Setting up rsync (3.2.7-1ubuntu1.2) ...
rsync.service is a disabled or a static unit, not starting it.
Scanning processes...
Scanning linux images...
Running kernel seems to be up-to-date.
No services need to be restarted.
No containers need to be restarted.
No user sessions are running outdated binaries.
No VM guests are running outdated hypervisor (qemu) binaries on this host.
waky@lubuntu:~$
Проверим результат:
waky@lubuntu:~$ rsync --version
rsync version 3.2.7 protocol version 31
…
waky@lubuntu:~$
Базовое использование и доступные параметры rsync
В общем виде команда имеет следующий синтаксис:
rsync -параметры /путь/к/исходной/папке/ /путь/к/целевой/папке/
Если одна из директорий находится на удаленном сервере, то к пути добавляются имя пользователя и хост, разделенные знаком @, затем двоеточие и путь на удаленном сервере:
rsync - параметры /локальный/путь/ user@remote_host:/удаленный/путь/
Утилита rsync имеет множество параметров для настройки работы. Вот основные из них:
- -a aрхивный режим (копирует рекурсивно, сохраняет права, символьные ссылки и т.д.)
- -v подробный вывод процесса
- -z сжатие данных при передаче
- -r рекурсивное копирование
- –delete удаляет из целевой папки файлы, которых нет в исходной
- –progress показывает прогресс передачи файлов
- -e ssh использует SSH для защищенной передачи данных
- –exclude=паттерн исключает файлы по шаблону
- –include=паттерн включает только указанные файлы
Настройка rsync в Linux
- Зачем запускать rsync как демона?
- Как запустить rsync в качестве демона?
- Как остановить демона rsyncd
Использовать rsync можно двумя способами. Первый – как отдельную утилиту, в таком случае отдельной настройки не требуется. В большинстве случаев можно начинать использовать команду сразу после установки.
Второй вариант – использовать rsync в виде демона (daemon) – фоновый процесс, который работает без прямого взаимодействия с пользователем и выполняет системные задачи.
Зачем запускать rsync как демона?
- Автоматизация: настройка автоматической синхронизации по расписанию.
- Постоянная работа: постоянное отслеживание изменений в папках.
- Обеспечение бесперебойной работы: автоматическая резервная копия без вмешательства пользователя.
Как запустить rsync в качестве демона?
Первым делом отредактируем, или если отсутствует – создадим, файл конфигурации rsync демона rsyncd. Открываем в текстовом редакторе файл /etc/rsyncd.conf:
[root@centos ~]# vi /etc/rsyncd.conf
Пример конфигурации:
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
[backup]
path = /home/backups/
comment = Backup folder
uid = nobody
gid = nobody
read only = no
list = yes
auth users = user1,user2
secrets file = /etc/rsyncd.secrets
hosts allow = 192.168.0.0/255.255.255.0
- lock file – файл используемый для ограничения максимального числа подключений
- log file – файл куда пишутся логи работы программы
- pid file – файл содержащий идентификатор процесса
- [name] – имя модуля
- path – путь до директории с которой работает программа
- comment – комментарий для пользователей
- uid – владелец файлов
- gid – группа файлов
- read only – определяет, могут ли пользователи загружать фалы
- list – отображение модулей
- auth users – список пользователей имеющих доступ
- secrets file – файл с парами пользователь/пароль
- hosts allow – ограничение, с каких хостов возможно подключение
Настройки делятся на две части:
глобальные – определяют параметры rsync общие для всех
модули – параметры специфичные для отдельных директорий
В примере выше lock file, log file и pid file заданы глобально, остальные параметры установлены для модуля backup.
Теперь внесем пары пользователь/пароль в файл с секретами /etc/rsyncd.secrets:
[root@centos ~]# vi /etc/rsyncd.secrets
Пример:
user1:password1
user2:password2
в каждой строке имя и пароль, разделенные двоеточием.
На файл секретов нужно установить правильные уровни доступа, иначе программа будет игнорировать этот файл, и аутентификация будет невозможна:
[root@centos ~]# chmod 600 /etc/rsyncd.secrets
Запускаем rsync в виде демона:
[root@centos ~]# rsync --daemon
На нашем сервере теперь работает rsyncd, который готов принимать внешние подключения. В нашей тестовой директории один файл:
[root@centos ~]# ls /home/backups/
test.txt
[root@centos ~]#
Давайте попробуем подключиться и скачать содержимое backups/ на втором сервере. Обратите внимание, что при обращении к демону используется двойное двоеточие вместо одного:
waky@lubuntu:~$ mkdir backup_local
waky@lubuntu:~$ rsync -rtv user1@192.168.0.104::backup/ ./backup_local/
Password:
receiving incremental file list
./
test.txt
sent 46 bytes received 121 bytes 9.03 bytes/sec
total size is 5 speedup is 0.03
waky@lubuntu:~$ ls backup_local/
test.txt
waky@lubuntu:~$
Мы создали отдельную директорию backup_local на втором сервере, и скачали в нее содержимое backup. Не забудьте настроить файервол на rsyncd сервере, чтобы он не блокировал запросы, по умолчанию порт 873.
Как остановить демона rsyncd
Если понадобится остановить работу демона используйте команду kill:
[root@centos ~]# kill `cat /var/run/rsyncd.pid`
С помощью команды cat мы извлекаем идентификатор процесса (PID) из соответствующего файла и передаем его команде kill, чтобы та остановила процесс с этим номером.
Заключение
Теперь вы знаете не только как установить и настроить rsync в Linux на примере CentOS и Ubuntu, но также как использовать его в автоматическом режиме через запуск в качестве демона. Это значительно упростит управление файлами и резервное копирование данных.