Heim > Backend-Entwicklung > PHP-Tutorial > Entwurf und Implementierung eines Echtzeit-Dateisynchronisierungsschemas zwischen zwei Servern unter Linux

Entwurf und Implementierung eines Echtzeit-Dateisynchronisierungsschemas zwischen zwei Servern unter Linux

WBOY
Freigeben: 2016-07-30 13:31:28
Original
1160 Leute haben es durchsucht

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

fertig


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.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage