Maison > Article > Opération et maintenance > Comment implémenter la synchronisation de fichiers en temps réel entre 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 Le but de /opt/bak/test/
est de garder un certain répertoire de fichiers des deux serveurs synchronisés en temps réel
Méthode de mise en œuvre : via rsync+inot ify -Combinaison d'outils pour réaliser
Tout d'abord, ajoutez une relation de confiance aux deux machines. La méthode spécifique a été introduite dans le précédent. article
Afficher les détails : linuxAjouter une relation de confiance et se connecter sans mot de passe
Nécessite une installationlogiciel :
Nécessité d'installer
à la fois sur le serveur source et sur le serveur cible Serveur source : Il s'agit d'un client rsync, aucune configuration n'est requise
Serveur cible : Il s'agit un serveur rsync, il doit être configuré dans /etc/rsyncd.conf Contenu
Cet outil est un outil de surveillance de fichiers en temps réel et nécessite le système d'exploitation Linux. prise en charge du noyau. La prise en charge du noyau nécessite au moins la version 2.6.13
Vérifiez si le système d'exploitation le prend en charge, exécutez comme suit :
uname -r Afficher la version
Retour :
2.6.32-358.6.1.el6.x86_64
Si la version 2.6.32 est supérieure à la 2.6.13, elle est supportée .
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 les autorisations d'exécution. : chmod +x inotify_bak.sh
Ensuite, exécutez : nohup inotify_bak.sh & mettez-le en arrière-plan et exécutez
serveur cible : démarrez d'abord le service d'arrière-plan rsync : /usr/bin/rsync --daemon
Serveur source : exécutez inotify_bak.sh &
Dans le répertoire du serveur source Créez de nouveaux répertoires et fichiers dans le script inotify_bak.sh et synchronisez-les avec le répertoire approprié du serveur cible
Vous pouvez afficher le fichier journal : /opt/soft/log/rsync .log La commande est la suivante : Observer la situation de synchronisation en temps réel.
tail -f /opt/soft/log/rsync.log
/usr/local/bin/inotifywait: error while loading shared libraries: libinotifytools.so.0: cannot open shared object file: No such file or directory
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!