Команда rsync в Linux

Опубликовано admin - вт, 05/24/2022 - 11:20

Rsync (Remote Sync) является в Linux быстрой и популярной утилитой копирования и синхронизации файлов и каталогов. Она позволяет передавать зашифрованные данные с использованием SSH и SSL.

Команда rsync Linux

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

Содержание

Синтаксис

rsync [OPTION]... SRC [SRC]... DEST - Передача локально
rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST - Передача с локальной машины на удалённую
rsync [OPTION]... [USER@]HOST:SRC [DEST] - Передача с удалённой машины на локальную

Здесь:

OPTION
параметры rsync
SRC
Исходный каталог
DEST
целевой каталог
USER
удаленное имя пользователя
HOST
удаленное имя хоста или IP-адрес

Приведены лишь основные выражения утилиты rsync.

Основные опции

-a , --archive
Режим архива, который указывает rsync рекурсивно синхронизировать каталоги, передавать специальные и блочные устройства, сохранять символические ссылки, время модификации, группы, владение и разрешения
-z , --compress
Заставляет rsync сжимать данные при их отправке на конечный компьютер
    --progress
Показывает индикатор выполнения (прогресса) во время передачи
-P
То же, что и --partial --progress
    --delete
Удаляет посторонние файлы из места назначения, что полезно для зеркалирования
-q , --quiet
Подавляет сообщения, не связанные с ошибками
-v, --verbose
Увеличивает детализацию передаваемых данных
-r, --recursive
Рекурсия по каталогам
u, --update
Пропускает файлы, которые на приёмнике новее
-l, --links
Копирует символьные ссылки как символьные ссылки
-V, --version
Выводит версию утилиты

Опций очень много и с полным списком их можно ознакомиться после установки утилиты здесь:

$ rsync --help

Установка

В Arch Linux:

$ sudo pacman -S rsync

В Ubuntu:

$ sudo apt install rsync

Использование rsync

Локальное использование

Локальное использование ничем не отличается от применения для копирования файлов и каталогов утилит cp и scp.

oleg@mobile:~:$ rsync -var /home/oleg/webprojects/emoney/* /home/oleg/tmp/
sending incremental file list
babki.txt
obb-tarifa.pdf
binance/
binance/readme
contact/
contact/contact-prevod.pdf
contact/readme
digiseller/
monetary/
monetary/readme
qiwi/
qiwi/readme
...

sent 9.100.151 bytes  received 1.698 bytes  18.203.698,00 bytes/sec
total size is 9.090.804  speedup is 1,00

Синхронизация файлов и каталогов локальной и удалённой машин

Передача с локальной машины на удалённую:

oleg@mobile:~:$ rsync -var /home/oleg/webprojects/emoney/* mensh@139.162.132.20:/home/mensh/emoney/
sending incremental file list
babki.txt
obb-tarifa.pdf
binance/
binance/readme
contact/
contact/contact-prevod.pdf
contact/readme
digiseller/
...

sent 6.369.887 bytes  received 1.352 bytes  364.070,80 bytes/sec
total size is 9.090.804  speedup is 1,43

Передача с удалённой машины на локальную:

oleg@mobile:~:$ rsync -var mensh@139.162.132.20:/home/mensh/drush-backups/* /home/oleg/tmp/
mensh@139.162.132.20's password: 
receiving incremental file list
linuxcookbookru/
linuxcookbookru/20211203085050/
linuxcookbookru/20211203085050/drupal/
linuxcookbookru/20211203085050/drupal/.editorconfig
linuxcookbookru/20211203085050/drupal/.gitignore
linuxcookbookru/20211203085050/drupal/.htaccess
linuxcookbookru/20211203085050/drupal/CHANGELOG.txt
linuxcookbookru/20211203085050/drupal/COPYRIGHT.txt
...

sent 21.580 bytes  received 3.577.938 bytes  378.896,63 bytes/sec
total size is 3.497.088  speedup is 0,97

Во всех случаях я использовал лишь три опции: -a, -r, -v.

Они позволили:

  • синхронизировать данные, создавая при необходимости подкаталоги (-r);
  • увеличить детализацию, создав более визуальный вывод (-v);
  • передать все файлы с разрешениями, временем изменения и любыми другими данными (-a).

Заключение

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

Поделиться с друзьями