Maison > Article > Opération et maintenance > Introduction à la méthode de synchronisation temps réel de deux serveurs sous Linux
Supposez les exigences suivantes :
Supposez deux serveurs :
192.168.0.1 Le serveur source a le répertoire /opt/test/
192.168.0.2 Le serveur cible a le répertoire /opt/bak/test/
Le but de l'implémentation est de garder un certain répertoire de fichiers des deux serveurs synchronisé en temps réel
Méthode d'implémentation : obtenue grâce à la combinaison de rsync +inotify-tools
Tout d'abord, ajoutez une relation de confiance aux deux machines. La méthode spécifique a été présentée dans l'article précédent
Afficher les détails : Ajouter une relation de confiance. sous Linux sans connexion par mot de passe
Besoin d'installer un logiciel :
Doit être installé à la fois sur le serveur source et sur le serveur cible
Serveur source : C'est un client rsync, non requis Configuration
Serveur cible : C'est un serveur rsync Vous devez configurer le contenu dans /etc/rsyncd.conf
Cet outil est destiné à la surveillance des fichiers en temps réel. L'outil nécessite la prise en charge du noyau du système d'exploitation Linux. La prise en charge du noyau nécessite au moins la version 2.6.13
Pour vérifier si le système d'exploitation prend en charge. dessus, effectuez ce qui suit :
uname -r Afficher la version
Retour :
2.6.32-358.6.1.el6.x86_64
ce qui signifie que la version 2.6.32 est supérieure à 2.6.13 et est prise en charge.
Exécution :
ll /proc/sys/fs/inotify total 0 -rw-r--r-- 1 root root 0 Oct 18 12:18 max_queued_events -rw-r--r-- 1 root root 0 Oct 18 12:18 max_user_instances -rw-r--r-- 1 root root 0 Oct 18 12:18 max_user_watches
S'il y a trois sorties, cela signifie qu'inotify est pris en charge par défaut et vous pouvez installer l'outil inotify-tools
Si ce n'est pas le cas. pris en charge, vous devez utiliser une nouvelle version de Linux. Si la version du système d'exploitation
répond aux exigences, elle peut être installée.
Après avoir installé inotify-tools, les deux fichiers suivants seront générés dans le répertoire d'installation correspondant :
ll /usr/local/bin/ total 88 -rwxr-xr-x 1 root root 44327 Oct 10 15:32 inotifywait -rwxr-xr-x 1 root root 41417 Oct 10 15:32 inotifywatch
Cela signifie que l'installation est réussie.
Remarque : Inotify doit être installé sur le serveur source, et inotify n'a pas besoin d'être installé sur le serveur cible.
Créez un nouveau script sur le serveur source :
inotify_bak.sh
#!/bin/bash src=/opt/test/ /usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e close_write,delete,create,attrib $src | while read file do /usr/bin/rsync -arzuq $src 192.168.0.1::www/ echo " ${file} was rsynced" >>/opt/soft/log/rsync.log 2>&1 done
Accordez l'autorisation d'exécution. : chmod +x inotify_bak.sh
Ensuite, exécutez : nohup inotify_bak.sh et mettez-le en arrière-plan pour l'exécution
Serveur cible : démarrez d'abord le service d'arrière-plan rsync : /usr/bin/rsync --daemon
Serveur source : Exécutez inotify_bak.sh &
Créez de nouveaux répertoires et fichiers dans le répertoire du serveur source, le script inotify_bak.sh le détectera et le synchronisera avec le répertoire pertinent du serveur cible
Vous pouvez consulter le fichier journal : /opt/soft/log/rsync.log Le La commande est la suivante : observez la situation de synchronisation en temps réel.
tail -f /opt/soft/log/rsync.log
/usr/local/bin/inotifywait : erreur lors du chargement des bibliothèques partagées : libinotifytools.so.0 : impossible d'ouvrir le fichier objet partagé : aucun fichier ou répertoire de ce type
C'est parce que le fichier de la bibliothèque est introuvable, créez simplement un lien symbolique
ln -s /usr/local/lib/libinotifytools.so.0 /usr/lib64/libinotifytools.so.0
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!