Maison > Article > Opération et maintenance > Partager un exemple de didacticiel de synchronisation en temps réel rsync + inotify
1.rsync
Par rapport aux méthodes de sauvegarde traditionnelles cp, tar, rsync présente les avantages d'une haute sécurité, d'une sauvegarde rapide et prend en charge la sauvegarde incrémentielle grâce à rsync, il peut résoudre les besoins de sauvegarde de données qui ne nécessitent pas de temps réel élevé. performances, telles que sauvegarder régulièrement les données du serveur de fichiers sur des serveurs distants, effectuer régulièrement la mise en miroir des données sur les disques locaux, etc.
À mesure que l'échelle des systèmes d'application continue de croître, des exigences plus élevées sont mises en avant en matière de sécurité et de fiabilité des données. rsync est également progressivement exposée dans les entreprises haut de gamme. il y a de nombreuses lacunes. Tout d'abord, lorsque rsync se synchronise en temps réel, tous les fichiers doivent être analysés pour comparaison et transmission différentielle. Si le nombre de fichiers atteint des millions, voire des dizaines de millions, l'analyse de tous les fichiers prend beaucoup de temps et seule une petite partie d'entre eux est modifiée, ce qui est très inefficace. Deuxièmement, rsync ne peut pas surveiller et synchroniser les données en temps réel. Bien qu'il puisse effectuer une synchronisation de démarrage via le démon linux, il y aura un décalage horaire entre les deux actions de démarrage, ce qui entraînera des incohérences entre le serveur et le client, rendant impossible la récupération complète des données dans le en cas d'échec de l'application. Sur la base des raisons ci-dessus, rsync+inotify est apparu !
2.inotify (surveillance)
inotify est une surveillance puissante, fine et asynchrone des événements du système de fichiers mécanisme. Grâce à inotify, vous pouvez surveiller divers événements subtils tels que l'ajout, la suppression, la modification et le mouvement dans le système de fichiers. À l'aide de cette interface du noyau, un logiciel tiers peut surveiller divers événements mineurs. dans le système de fichiers. La situation change, et inotify-tools est un tel logiciel tiers.
1. Configuration du serveur (il suffit d'installer rsync)
Partager sur /tmp/ :
1.Ajouter un utilisateur virtueluseradd rsync -s /sbin/nologin
chown -R rsync.rsync /tmp/
2.Configurationrsyncd.conf Fichier de configuration
vim rsyncd.conf
#rsync_config_______________start
#rsyncd.conf start##
uid = rsync (utilisateur)
gid = rsync (utilisateur)
utilisez chroot = no (pour éviter les problèmes de sécurité)
max connexions = 200 (combien de clients peuvent se connecter à mon serveur de sauvegarde)
timeout = 300 (timeout, déconnexion après aucune action pendant une longue période)
pid file = /var/run/rsyncd.pid (numéro de processus, mettre le numéro de processus dans ce fichier)
lock file = /var/run/rsync.lock (équivalent à la notion de "lock", la notion de verrouiller la porte lorsqu'on va aux toilettes)
fichier journal = /var/log/rsyncd.log (une erreur s'est produite, vous pouvez consulter le fichier journal)
[tmp] ( module)
path = /tmp/(path)
ignorer les erreurs
lecture seule = false (lecture seule signifie faux, lisible et inscriptible)
list = false (liste non autorisée)
hosts Allow = 10.0. 0.0/24 (hôtes autorisés)
hosts deny = 0.0.0.0/32 (hôtes refusés)
utilisateurs auth = rsync_backup (prise en charge virtuelle utilisateurs)
secrets file = /etc/rsync.password (fichier de mot de passe correspondant de l'utilisateur)
#rsync_config____________end
3. Créez un fichier de mots de passe
echo "rsync_backup:123456" >/etc/rsync.password
Tous les fichiers de mots de passe ont 600autorisationschmod 600 /etc/rsync.password
4 .rsync --daemon démon démarrage du mode
5.Ajoutez rsync --daemon à /etc/rc.local
echo "/ usr/bin/rsync --daemom” >>/etc/rc.local
2.
Installez rsync et inotify
1.Installation rsync (yum peut être installé)
Créer un fichier d'authentification par mot de passe echo « 123456 » >/etc/rsync.passwordSeul le mot de passe requis
Définir les autorisations600 chmod 600 /etc/rsync.password
3.Installer inotify :
cd /home/cai/tools/ wget54 tar > 57 ./configure --prefix=/usr/local/inotify-tools-3.14 58 make && make install 59 yum install -y gcc 60 ./configure --prefix=/usr/local/inotify-tools-3.14 61 make && make install 62 cd /usr/local/inotify-tools-3.14/ 63 ls 64 ln -s /usr/local/inotify-tools-3.14/ /usr/local/inotify
4.
Les scripts sont placés sous
/server/scripts
vim /server/scripts /rsync.sh#!/bin/sh
host=192.168.76.129 src=/tmp/ des=tmp user=rsync_backup /usr /local/inotify/bin/inotifywait -mrq --timefmt '%d%m%y %H:%M' --format '%T %w%f%e' -e modifier, supprimer, créer, attrib $src | pendant la lecture des fichiers faire /usr/bin/rsync -avz - -delete $src $user@$host::$des --password-file=/etc/rsync.password echo "${files} a été rsynchronisé" >> /var/log/rsyncd.log 2>&1 terminé sortie o ~et donnez
764autorisations
Script de test :
sh -x /server/scripts/rsync.shExécutez le script :
sh /server/scripts/rsync.sh &Mettez le script
rsync.shdans l'entrée de démarrage :
echo “/tmp/rsync.sh” >>/etc / rc.local
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!