Comment configurer le démon rsync sur Linux
- 3247
- 1002
- Rayan Lefebvre
Dans un article précédent, nous avons vu quelques exemples de base de la façon d'utiliser rsync
sur Linux pour transférer efficacement les données. Comme nous l'avons vu, pour synchroniser les données avec une machine distante, nous pouvons utiliser à la fois un shell distant comme ssh
ou la démon rsync
. Dans cet article, nous nous concentrerons sur cette dernière option, et nous verrons comment installer et configurer RSYNCD
Sur certaines des distributions Linux les plus utilisées.
Dans ce tutoriel, vous apprendrez:
- Comment installer et configurer le démon rsync
Exigences et conventions logicielles utilisées
Catégorie | Exigences, conventions ou version logicielle utilisée |
---|---|
Système | Indépendant de la distribution |
Logiciel |
|
Autre | Aucune exigence particulière n'est nécessaire pour suivre ce tutoriel |
Conventions | # - Exige que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande$ - Exige que les commandes Linux soient exécutées en tant qu'utilisateur non privilégié régulier |
Installation
Installation du démon rsync
est vraiment facile, car le package et ses dépendances sont disponibles par défaut dans tous les principaux référentiels de distribution Linux. Sur Debian
et Archlinux
, Les fichiers liés au démon rsync sont inclus le rsync
le package, donc tout ce que nous avons à faire, c'est d'installer ce dernier. Sur Debian, nous pouvons utiliser le gestionnaire de packages APT:
$ sudo apt-get install rsync
Sur Archlinux, nous utilisons plutôt Pacman:
$ sudo pacman -s rsync
Sur des distributions comme Fedora, plutôt, RSYNCD
, Le démon rsync, est distribué dans son propre package, rsync-daemon
. Dans les versions récentes de la distribution, pour l'installer, nous pouvons utiliser le DNF
directeur chargé d'emballage. Le package RSYNC principal sera installé comme dépendance:
$ sudo dnf installer rsync-daemon
Le fichier de configuration RSYNCD
Une fois RSYNCD
est installé, nous pouvons le configurer en utilisant le / etc / rsyncd.confli
déposer. Le fichier est déjà inclus dans les packages Archlinux et Fedora, tandis que sur Debian, il doit être créé à partir de zéro. Voici le contenu du fichier sur Fedora:
# / etc / rsyncd: fichier de configuration pour le mode de démon #.Page confoir pour plus d'options. # Exemple de configuration: # uid = personne # gid = personne # utilise chroot = oui # connexions max = 4 # fichier pid = / var / run / rsyncd.pid # exclude = perdu + fondé / # transfert logging = oui # timeout = 900 # ignore non redable = oui # ne compress pas = *.gz *.tgz *.zipper *.z *.Z *.RPM *.DEB *.bz2 # [ftp] # path = / home / ftp # commentaire = zone d'exportation ftp
Tous les paramètres sont commentés et affichés comme un exemple de configuration: ils représentent un bon point de départ pour notre discussion. La première chose que nous devons remarquer est de savoir comment un RSyncd module
est défini:
[FTP] PATH = / Home / FTP Commentaire = zone d'exportation FTP
Un module est défini dans une «strophe» qui commence par la déclaration du nom du module entre les crochets, dans ce cas [FTP]
. Un module est associé à un répertoire du système de fichiers, spécifié avec le chemin
argument. Tous les paramètres fournis à l'intérieur de la strophe sont local
, Ils sont donc appliqués uniquement au module connexe; les paramètres fournis avant toutes les strophes, sont mondial
. Jetons un coup d'œil à certains d'entre eux.
Paramètres mondiaux
Comme nous venons de le dire, les paramètres mondiaux sont ceux définis au début de / etc / rsyncd.confli
fichier, avant toute définition du module, ou éventuellement à l'intérieur d'un [mondial]
section. Ici, nous discuterons de certaines des plus intéressantes.
Le paramètre «Fichier PID»
Ce paramètre est utilisé pour spécifier le chemin d'accès d'un fichier où le RSyncd Piquer
(ID de processus) sera écrit. Par défaut, le lancement de démon sera interdit si le fichier spécifié existe déjà. Il est possible de modifier ce comportement et de laisser le fichier écraser, plutôt en lançant le démon rsync avec le --dparam = pid - file = fichier
option.
Le paramètre «port»
En utilisant ce paramètre global, nous pouvons spécifier un port alternatif pour le démon RSYNC. La valeur par défaut est TCP
Port 873. Cette option peut être remplacée lorsque le démon est lancé, en utilisant le --port
option.
Le paramètre «Adresse»
Nous pouvons utiliser le global adresse
paramètre pour spécifier l'adresse que le démon rsync écoutera. L'adresse spécifiée dans le fichier peut être remplacée en lançant le démon avec le --adresse
option, fournissant l'adresse souhaitée comme argument.
En plus des paramètres que nous avons vus ci-dessus, dans la section globale, nous pouvons également spécifier paramètres du module
. Lorsque nous le faisons, les valeurs de paramètres spécifiées deviendront les valeurs par défaut de tous les modules.
Paramètres du module
Les paramètres du module sont ceux spécifiés dans une section de module et sont appliqués à cette section uniquement. Voyons certains d'entre eux.
Le paramètre «chemin»
Ce paramètre est obligatoire et doit être fourni pour chaque module. Il est utilisé pour spécifier le chemin du répertoire mis à disposition par le module lui-même.
Le paramètre «commentaire»
Le paramètre «commentaire» est facultatif: nous pouvons spécifier une chaîne qui sera affichée près du nom du module, lorsque le client demande une liste des disponibles.
Faire un module lire ou écrire uniquement
Par défaut, tous les modules sont créés en lecture seule. Cela signifie qu'un client ne peut l'utiliser que comme source pour le transfert. Ce comportement peut être modifié en définissant le paramètre «lire uniquement» Non
ou FAUX
. Le module peut également être fait en écriture uniquement, en utilisant le Écrire uniquement
paramètre et fourniture Oui
ou vrai
comme valeur. Si ce dernier paramètre est activé, le client ne pourra pas télécharger des fichiers à partir du module. Afin de lire les fichiers du module ou de lui écrire, les autorisations standard UNIX doivent également être respectées, donc l'utilisateur l'utilisateur est exécuté comme, doit être autorisé à effectuer l'action souhaitée.
Les paramètres UID et GID
Le uid
et gid
paramètres combinés, définir les privilèges que le transfert aura. Le premier est utilisé pour définir l'utilisateur, le transfert est exécuté comme lorsque le démon est exécuté comme racine (si le démon est exécuté avec les privilèges d'un utilisateur normal, l'utilisateur ne changera pas). L'utilisateur peut être identifié par son nom d'utilisateur ou son identifiant numérique. Ce dernier définit un ou plusieurs noms de groupe ou identifiant de groupe à utiliser pour le transfert.
La valeur par défaut des deux options est personne
, ce qui signifie que lorsque le démon est exécuté comme racine, les transferts seront exécutés avec les privilèges du personne
l'utilisateur et le personne
groupe (sur Debian le groupe nul n'existe pas - nogroup
est utilisé à la place).
Le paramètre «Utiliser le chroot»
En utilisant le Utiliser le chroot
paramètre, nous pouvons définir si RSYNC doit chroot au chemin du module défini avant le démarrage du transfert. Cela peut être utilisé pour appliquer la sécurité, mais pour en profiter, le démon doit être configuré pour s'exécuter avec des privilèges racines. Par défaut, cette option est définie sur Oui
.
Le paramètre «Connexions max»
Il s'agit d'un autre paramètre très utile, et il est utilisé pour définir le nombre maximal de connexions simultanées prises en charge par le démon. La valeur par défaut utilisée pour le paramètre est 0
, ce qui signifie qu'aucune limite n'est fixée. Si la valeur fournie est un nombre négatif, les connexions sont complètement désactivées.
Exclure et inclure des fichiers du transfert
Parfois, nous pouvons vouloir exclure certains fichiers du transfert: nous pouvons accomplir la tâche en utilisant le exclure
Paramètre, qui accepte une liste de modèles séparés dans l'espace. Les fichiers correspondants par les modèles ne seront pas synchronisés. Le inclure
Le paramètre fonctionne de la même manière, mais il est utilisé pour définir explicitement les inclusions.
Une autre façon d'exclure ou d'expliciter explicitement les fichiers est d'utiliser le exclure de
et inclure de
paramètres. Avec ces paramètres, nous pouvons spécifier le chemin d'accès des fichiers contenant des modèles d'exclusion et d'inclusion, respectivement. Les fichiers doivent contenir un modèle par ligne.
Le exclure
, inclure
, exclure de
et inclure de
Les paramètres ne peuvent apparaître qu'une seule fois à l'intérieur d'un module.
Le paramètre «temporisation»
Lorsque nous utilisons le rsync
client Nous pouvons fournir le--temps libre
Option pour définir un délai d'E / S maximum en secondes: si aucune donnée n'est transférée dans le temps spécifié, le transfert est interdit. Le temps libre
option du démon rsync
Peut être utilisé pour remplacer le délai défini par le client. Cela peut être utile pour éviter d'attendre un client mort. Le délai d'expiration est exprimé en quelques secondes: 0
est la valeur par défaut, et cela signifie aucun délai d'expiration.
«Ignorer non listable» et «ne compressez pas»
Le ignorer non lisable
L'option est utilisée Instruire RSYNC pour ignorer les fichiers qui ne sont pas lisibles par l'utilisateur que le transfert est en cours d'exécution. Le Ne pas compresser
L'option, à la place, est utilisée pour fournir une liste séparée d'espace de modèles insensibles à la casse utilisés pour sélectionner des fichiers qui ne doivent pas être compressés pendant le transfert. Cela peut être particulièrement utile pour éviter de compresser des fichiers déjà compressés.
Les paramètres «hôtes permettent» et «hôtes nier»
En utilisant le Les hôtes permettent
et Les hôtes nient
Paramètres, nous pouvons spécifier une liste de modèles séparés par des virgules qui seront appariés avec le nom d'hôte ou la propriété intellectuelle des clients, pour leur permettre l'accès, respectivement. Les deux paramètres peuvent être combinés et apparaître ensemble à l'intérieur d'un module: les modèles «Autoriser» sont vérifiés avant les motifs «nier». Par défaut, tous les hôtes sont autorisés à se connecter.
Exemple de configuration de module
Faisons un exemple et créons un module sur un serveur RSync. La première chose que nous devons faire est d'autoriser le trafic entrant sur TCP
port 873
. Si nous utilisons le pare-feu, nous pouvons ajouter le préconfiguré RSYNCD
Service à la zone que nous utilisons:
$ sudo Firewall-CMD - PERMANENT --Add-Service RSYNCD && sudo Firewall-CMD - Reload
Si nous utilisons UFW à la place, nous pouvons courir:
$ sudo ufw autoriser 873 / TCP
Une fois que nous avons configuré le pare-feu, nous pouvons procéder et définir un module. Voici notre configuration:
[LinuxConfig] Path = / Mnt / Data / RSync Commentaire = "Exemple d'un module de démon RSYNC" Read Only = False Exclude = *.SMS
Nous avons appelé notre module «LinuxConfig» et nous avons associé le / mnt / data / rsync
répertoire. Nous avons également fourni un commentaire. Nous définissons le module à la fois lisible et écrivable en définissant le lecture seulement
paramètre à false, et, via le exclure
paramètre, nous avons fourni un modèle pour exclure tous les fichiers avec le .SMS
extension.
Avant d'utiliser notre module, nous devons démarrer le démon. Nous pouvons exécuter RSYNC en tant que démon en invoquant le programme avec le --démon
Option, ou nous pouvons simplement utiliser SystemD pour accomplir la tâche (sous le capot, le service Systemd exécute la même commande). En vertu des distributions basées sur Debian, le service s'appelle rsync
; Sur Fedora et Archlinux, on l'appelle RSYNCD
:
$ sudo systemctl start Sync
Pour faire démarrer automatiquement RSYNC au démarrage, nous devons utiliser le SystemCTL activer
Sous-commande:
$ sudo systemctl activer rsync
Nous définissons le / mnt / data / rsync
répertoire appartenant à la personne
l'utilisateur et le nogroup
groupe (c'est une machine debian). Voici son contenu:
$ ls / mnt / data / rsync csv1.CSV Text1.txt text2.SMS
Comme nous pouvons le voir, le répertoire contient deux .SMS
fichiers et un .CSV
. Si nous utilisons le module comme source dans le transfert, seul le «CSV1.Le fichier CSV "sera inclus:
$ RSYNC -AV RSync: // 192.168.0.39 / LinuxConfig / . réception de la liste de fichiers incrémentiels ./ csv1.CSV
L'exclusion prend effet également lorsque nous utilisons le module comme destination. Disons, disons que nous créons le «CSV2.CSV »et« Text3.Fichiers txt »dans notre répertoire de travail actuel:
$ touch csv2.CSV Text3.SMS
Si nous exécutons maintenant RSYNC et utilisons notre répertoire de travail actuel en tant que source et module comme destination, nous pouvons voir comment le démon refuse de recevoir le «Text3.Fichier txt ”, car il est apparié par le modèle d'exclusion spécifié:
$ RSYNC -AV . rsync: // 192.168.0.39 / LinuxConfig Envoi de la liste de fichiers incrémentaux Erreur: Daemon a refusé de recevoir le fichier "Text3.SMS" ./ csv2.CSV
Notez que dans les commandes ci-dessus, nous avons utilisé un URL RSYNC
Pour spécifier l'adresse IP du serveur et le nom du module que nous souhaitons utiliser. Comment pouvons-nous obtenir une liste de tous les modules disponibles sur une machine? C'est très facile, nous exécutons simplement la commande RSYNC en spécifiant uniquement l'adresse du serveur dans l'URL:
$ rsync rsync: // 192.168.0.39 LinuxConfig "Exemple d'un module de démon RSYNC"
Tous les modules disponibles et les commentaires associés seront affichés; Dans ce cas, seul le «LinuxConfig».
Conclusion
Dans cet article, nous avons vu comment installer et configurer le démon RSync, sur certaines des distributions Linux les plus utilisées. Nous avons vu et appris à utiliser certains des paramètres mondiaux et spécifiques au module disponibles pour modifier le comportement du démon RSYNCD. Enfin, nous avons vu un exemple de configuration de module. Pour une connaissance plus approfondie de RSYNCD
, Nous pouvons toujours consulter le manuel officiel. C'est juste une question de course:
$ man rsyncd.confli
Tutoriels Linux connexes:
- Choses à installer sur Ubuntu 20.04
- Une introduction à l'automatisation Linux, des outils et des techniques
- Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
- Choses à installer sur Ubuntu 22.04
- Fichiers de configuration Linux: 30 premiers
- Masterring Bash Script Loops
- Téléchargement Linux
- Mint 20: Mieux que Ubuntu et Microsoft Windows?
- Comment doubler Kali Linux et Windows 10
- Ubuntu 20.04 astuces et choses que vous ne savez peut-être pas
- « Exemples sur la façon d'utiliser RSYNC pour les sauvegardes et synchonisations de données locales et distantes
- Comment installer docker sur Ubuntu 20.04 LTS FOCAL FOSSA »