Ursprüngliche Adresse http://blog.csdn.net/5iasp/article/details/13630927
Entwurf und Implementierung eines Echtzeit-Dateisynchronisierungsschemas für zwei Server unter Linux
Annahme Es gelten folgende Anforderungen:
Angenommen zwei Server:
192.168.0.1 Der Quellserver hat das Verzeichnis /opt/test/
192.168.0.2 Das Ziel Server hat das Verzeichnis /opt/bak Der Zweck von /test/
besteht darin, ein bestimmtes Dateiverzeichnis der beiden Server in Echtzeit synchronisiert zu halten
Implementierungsmethode: Erreicht durch Kombination aus rsync+inotify-tools
Erfordert Softwareinstallation:
1. Die rsync-Synchronisierungssoftware
muss sowohl auf dem Quellserver als auch installiert werden Zielserver
Quellserver: Es ist ein Rsync-Client und muss nicht konfiguriert werden
Zielserver: Es ist ein Rsync-Server und der Inhalt in /etc/rsyncd.conf müssen konfiguriert werden
Sie müssen nach der Installation eine neue Konfigurationsdatei erstellen: /etc/rsyncd.conf
Die Konfigurationsdatei befindet sich in: /etc/
Der Inhalt der Datei ist wie folgt:
uid = root
gid = root
chroot verwenden = nein
max. Verbindungen = 10
strenge Modi = ja
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
log file = =/var/run/rsyncd.log
[www ]
path= /opt/bak/test
comment=analysieren
read only = false
hostsallow = *
2 -tools-Tool
Dieses Tool ist ein Echtzeit-Dateiüberwachungstool und erfordert die Kernelunterstützung des Linux-Betriebssystems mindestens Version 2.6
Überprüfen Sie, ob das Betriebssystem es unterstützt. Führen Sie Folgendes aus:
uname -r Version anzeigen
Rückgabe:
2.6.32-220.4.1.el6 .x86_64
bedeutet dass Version 2.6.32 größer als 2.6.13 ist und unterstützt wird.
Ausführung:
ll /proc/sys/fs/inotify
total 0
-rw-r--r-- 1 root root 0 18. Okt. 12:18 max_queued_events
-rw-r--r-- 1 Root Root 0 18. Okt. 12:18 max_user_instances
-rw-r--r-- 1 Root Root 0 18. Okt. 12:18 max_user_watches
Wenn es drei Ausgaben gibt, bedeutet dies, dass inotify standardmäßig unterstützt wird und Sie das Tool inotify-tools installieren können.
Wenn es nicht unterstützt wird, müssen Sie eine neue Version des Linux-Betriebssystems verwenden System
Wenn die Version die Anforderungen erfüllt, können Sie Installiert werden.
Nach der Installation von inotify-tools werden die folgenden zwei Dateien im entsprechenden Installationsverzeichnis generiert:
ll /usr/local/bin/
total 88
-rwxr- xr- x 1 root root 44327 10. Okt. 15:32 inotifywait
-rwxr-xr-x 1 root root 41417 10. Okt. 15:32 inotifywatch
bedeutet, dass die Installation erfolgreich war.
Hinweis: Inotify muss auf dem Quellserver installiert werden und inotify muss nicht auf dem Zielserver installiert werden.
3. Zugehörige Skripte:
Erstellen Sie ein neues Skript auf dem Quellserver:
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
echo „ ${file} wurde rsynced“ >>/opt/soft/ log/rsync.log 2>&1
Hinweis: Das www hier ist im Zielserver/usw. Modulname konfiguriert in /rsyncd.conf: [www]
Ausführung geben Berechtigung: chmod +x inotify_bak.sh
Dann ausführen: inotify_bak.sh & zur Ausführung in den Hintergrund stellen
4. Informationen zum Starten von
Zielserver: Starten Sie rsync Hintergrunddienst zuerst: /usr/bin/rsync --daemon
Quellserver: Führen Sie inotify_bak.sh aus &
5. Testen Sie:
Erstellen Sie ein neues Verzeichnis und Datei im Quellserververzeichnis, das Skript inotify_bak.sh erkennt sie und synchronisiert sie dann mit dem entsprechenden Verzeichnis des Zielservers
Ja Überprüfen Sie die Protokolldatei: /opt/soft/log /rsync.log Der Befehl lautet wie folgt: Beobachten Sie die Echtzeitsynchronisationssituation.
tail -f /opt/soft/log/rsync.log
Das Obige stellt den Entwurf und die Implementierung des Echtzeit-Synchronisationsschemas von Dateien zwischen zwei Servern unter Linux vor, einschließlich verschiedener Aspekte. Ich hoffe, dass es für Freunde, die sich für PHP-Tutorials interessieren, hilfreich sein wird.