Перейти до змісту

Передмова

rsync має виконати автентифікацію користувача перед синхронізацією даних. Існує два протоколи для автентифікації: протокол SSH і протокол rsync (порт протоколу rsync за замовчуванням — 873)

  • Метод перевірки протоколу SSH: використовуйте протокол SSH як основу для автентифікації користувача (тобто використовуйте для перевірки системного користувача та пароль самого GNU/Linux), а потім виконайте синхронізацію даних.
  • Метод входу перевірки протоколу rsync: використовуйте протокол rsync для автентифікації користувача (користувачі системи не GNU/Linux, подібні до віртуальних користувачів vsftpd), а потім виконайте синхронізацію даних.

Перед конкретною демонстрацією синхронізації rsync вам потрібно використати команду rsync. У Rocky Linux 8 пакет rsync rpm встановлено за замовчуванням, а його версія — 3.1.3-12, як показано нижче:

[root@Rocky ~]# rpm -qa|grep rsync
rsync-3.1.3-12.el8.x86_64
Основний формат: rsync [параметри] оригінальне розташування цільове розташування
Часто використовувані варіанти:
-a: режим архіву, рекурсивний і зберігає атрибути об'єкта файлу, що еквівалентно -rlptgoD (без -H, -A, -X)
-v: відображає детальну інформацію про процес синхронізації
-z: стискає під час передачі файлів
-H: Зберігає файли жорстких посилань
-A: зберігає дозволи ACL
-X: зберігає дозволи chattr
-r: рекурсивний режим, включаючи всі файли в каталозі та підкаталогах
-l: усе ще зарезервовано для файлів символічних посилань
-p: дозвіл на збереження атрибутів файлів
-t: час для збереження атрибутів файлу
-g: зберігає групу, що належить атрибуту файлу (лише для суперкористувачів)
-o: зберігає власника атрибутів файлу (лише для суперкористувачів)
-D: зберігає файли пристрою та інші спеціальні файли

Особисте використання автором: rsync -avz оригінальне розташування цільове розташування

Опис середовища

Елемент Опис
Rocky Linux 8(Server) 192.168.100.4/24
Fedora 34(client) 192.168.100.4/24

Ви можете використовувати Fedora 34 для завантаження та завантаження

graph LR;
RockyLinux8-->|pull/download|Fedora34;
Fedora34-->|push/upload|RockyLinux8;

graph LR; RockyLinux8-->|pull/download|Fedora34; Fedora34-->|push/upload|RockyLinux8

graph LR;
RockyLinux8-->|push/upload|Fedora34;
Fedora34-->|pull/download|RockyLinux8;

Демонстрація на основі протоколу SSH

Підказка

Тут і Rocky Linux 8, і Fedora 34 використовують користувача root для входу. Fedora 34 — це клієнт, а Rocky Linux 8 — сервер.

витягти/завантажити

Оскільки він заснований на протоколі SSH, ми спочатку створюємо користувача на сервері:

[root@Rocky ~]# useradd testrsync
[root@Rocky ~]# passwd testrsync

На стороні клієнта ми витягуємо/завантажуємо його, а файл на сервері має назву /rsync/aabbcc

[root@fedora ~]# rsync -avz testrsync@192.168.100.4:/rsync/aabbcc /root
testrsync@192.168.100.4 ' s password:
receiving incremental file list
aabbcc
sent 43 bytes received 85 bytes 51.20 bytes/sec
total size is 0 speedup is 0.00
[root@fedora ~]# cd
[root@fedora ~]# ls
aabbcc

Передача пройшла успішно.

Підказка

Якщо порт SSH сервера не є стандартним 22, ви можете вказати порт подібним чином ---rsync -avz -e 'ssh -p [порт]'.

передати/відвантажити

[root@fedora ~]# touch fedora
[root@fedora ~]# rsync -avz /root/* testrsync@192.168.100.4:/rsync/
testrsync@192.168.100.4 ' s password:
sending incremental file list
anaconda-ks.cfg
fedora
rsync: mkstemp " /rsync/.anaconda-ks.cfg.KWf7JF " failed: Permission denied (13)
rsync: mkstemp " /rsync/.fedora.fL3zPC " failed: Permission denied (13)
sent 760 bytes received 211 bytes 277.43 bytes/sec
total size is 883 speedup is 0.91
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1330) [sender = 3.2.3]

Відмовлено в дозволі підказки, як із цим впоратися?

Спочатку перевірте права доступу до каталогу /rsync/. Очевидно, що дозволу "w" немає. Ми можемо використовувати setfacl, щоб надати дозвіл:

[root@Rocky ~ ] # ls -ld /rsync/
drwxr-xr-x 2 root root 4096 November 2 15:05 /rsync/
[root@Rocky ~ ] # setfacl -mu:testrsync:rwx /rsync/
[root@Rocky ~ ] # getfacl /rsync/
getfacl: Removing leading ' / ' from absolute path names
# file: rsync/
# owner: root
# group: root
user::rwx
user:testrsync:rwx
group::rx
mask::rwx
other::rx

Спробуйте ще раз, успіх!

[root@fedora ~ ] # rsync -avz /root/* testrsync@192.168.100.4:/rsync/
testrsync@192.168.100.4 ' s password:
sending incremental file list
anaconda-ks.cfg
fedora
sent 760 bytes received 54 bytes 180.89 bytes/sec
total size is 883 speedup is 1.08

Author: tianci li

Contributors: Steven Spencer, Ganna Zhyrnova