Comment configurer le démon rsync sur Linux

Comment configurer le démon rsync sur Linux

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

Exigences logicielles et conventions de ligne de commande Linux
Catégorie Exigences, conventions ou version logicielle utilisée
Système Indépendant de la distribution
Logiciel
  • Rsync
  • RSYNCD (le démon RSYNC)
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