Préface¶
rsync
doit effectuer l'authentification de l'utilisateur avant la synchronisation des données. Il y a deux méthodes de protocole d'authentification : protocole SSH et protocole rsync (le port par défaut de rsync est 873)
- Méthode de connexion de vérification du protocole SSH : utiliser le protocole SSH comme base pour l'authentification de l'identité de l'utilisateur (c'est-à-dire utiliser l'utilisateur système et le mot de passe de GNU/Linux lui-même pour la vérification), puis effectuer une synchronisation des données.
- méthode de connexion de vérification du protocole rsync : utilisez le protocole rsync pour l'authentification de l'utilisateur (utilisateurs système non-GNU/Linux, similaires aux utilisateurs virtuels vsftpd), puis effectuez la synchronisation des données.
Avant la démonstration spécifique de la synchronisation rsync, vous devez utiliser la commande rsync
. Dans Rocky Linux 8, le paquet rpm rsync est installé par défaut et la version est 3.1.3-12, comme suit :
[root@Rocky ~]# rpm -qa|grep rsync
rsync-3.1.3-12.el8.x86_64
Basic format: rsync [options] original location target location
Commonly used options:
-a: archive mode, recursive and preserves the attributes of the file object, which is equivalent to -rlptgoD (without -H, -A, -X)
-v: Display detailed information about the synchronization process
-z: compress when transferring files
-H: Keep hard link files
-A: retain ACL permissions
-X: retain chattr permissions
-r: Recursive mode, including all files in the directory and subdirectories
-l: still reserved for symbolic link files
-p: Permission to retain file attributes
-t: time to retain file attributes
-g: retain the group belonging to the file attribute (only for super users)
-o: retain the owner of the file attributes (only for super users)
-D: Keep device files and other special files
Utilisation favorisée par l'auteur : rsync -avz original location target location
Description de l'environnement¶
Élément | Observation |
---|---|
Rocky Linux 8 (Serveur) | 192.168.100.4/24 |
Fedora 34 (client) | 192.168.100.5/24 |
Vous pouvez utiliser Fedora 34 pour télécharger
graph LR;
RockyLinux8-->|pull/download|Fedora34;
Fedora34-->|push/upload|RockyLinux8;
Vous pouvez également utiliser Rocky Linux 8 pour télécharger
graph LR;
RockyLinux8-->|push/upload|Fedora34;
Fedora34-->|pull/download|RockyLinux8;
Démonstration basée sur le protocole SSH¶
Astuce
Ici, Rocky Linux 8 et Fedora 34 utilisent l'utilisateur root pour se connecter. Fedora 34 est le client et Rocky Linux 8 le serveur.
pull/download¶
Puisqu'il est basé sur le protocole SSH, nous allons créer d'abord un utilisateur sur le serveur :
[root@Rocky ~]# useradd testrsync
[root@Rocky ~]# passwd testrsync
Du côté du client, nous utilisons pull/download et le fichier sur le serveur est /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
Le transfert a réussi.
Astuce
Si le port SSH du serveur n'est pas le port par défaut 22, vous pouvez spécifier le port de manière similaire---rsync -avz -e 'ssh -p [port]'
.
push/upload¶
[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]
Demande de permission refusée, comment y faire face ?
Vérifiez d'abord les permissions du répertoire /rsync/ . Évidemment, il n'y a pas de permission "w". Nous pouvons utiliser setfacl
pour accorder des permission :
[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
Essayez à nouveau !
[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