Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Einführung in die Methode der Echtzeitsynchronisation zweier Server unter Linux

Einführung in die Methode der Echtzeitsynchronisation zweier Server unter Linux

巴扎黑
巴扎黑Original
2017-08-22 13:13:584385Durchsuche

Gehen Sie von folgenden Anforderungen aus:

Gehen Sie von zwei Servern aus:

192.168.0.1 Der Quellserver hat das Verzeichnis /opt/test/

192.168.0.2 Der Zielserver hat das Verzeichnis /opt/bak/test/

Der Zweck der Implementierung besteht darin, ein bestimmtes Dateiverzeichnis der beiden Server in Echtzeit synchronisiert zu halten

Implementierungsmethode: Wird durch die Kombination von rsync erreicht +inotify-tools

Vorbereitung:

Fügen Sie zunächst eine Vertrauensbeziehung zu den beiden Maschinen hinzu. Die spezifische Methode wurde im vorherigen Artikel vorgestellt

Details anzeigen: Vertrauensbeziehung hinzufügen unter Linux ohne Passwort-Anmeldung

Software muss installiert werden:

1. Rsync-Synchronisierungssoftware

Muss sowohl auf dem Quellserver als auch auf dem Zielserver installiert werden

Quellserver: Es ist ein Rsync-Client, keine erforderliche Konfiguration

Zielserver: Es ist ein Rsync-Server. Sie müssen den Inhalt in /etc/rsyncd.conf konfigurieren

2. inotify-tools-Tool

Dieses Tool dient zur Dateiüberwachung in Echtzeit. Das Tool erfordert Kernel-Unterstützung des Linux-Betriebssystems, erfordert mindestens Version 2.6.13

Um zu überprüfen, ob das Betriebssystem dies unterstützt Führen Sie dazu Folgendes aus:

uname -r Version anzeigen

Rückgabe:

    2.6.32-358.6.1.el6.x86_64

, was 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 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

Wenn es drei Ausgaben gibt, bedeutet dies, dass inotify standardmäßig unterstützt wird und Sie das Tool inotify-tools installieren können

Wenn dies nicht der Fall ist unterstützt, müssen Sie eine neue Linux-Version verwenden. Wenn die Version des Betriebssystems

die Anforderungen erfüllt, kann es 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 Oct 10 15:32 inotifywait
    -rwxr-xr-x 1 root root 41417 Oct 10 15:32 inotifywatch

Dies 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
          /usr/bin/rsync -arzuq $src 192.168.0.1::www/
          echo "  ${file} was rsynced" >>/opt/soft/log/rsync.log 2>&1
    done

Erteilen Sie die Ausführungsberechtigung : chmod +x inotify_bak.sh

Führen Sie dann Folgendes aus: nohup inotify_bak.sh und stellen Sie es zur Ausführung in den Hintergrund

4. Informationen zum Starten von

Zielserver: Starten Sie zuerst den rsync-Hintergrunddienst: /usr/bin/rsync --daemon

Quellserver: Führen Sie inotify_bak.sh aus &

5. Test:

Neue Verzeichnisse erstellen und Dateien im Quellserververzeichnis. Das Skript inotify_bak.sh erkennt sie und synchronisiert sie mit dem entsprechenden Verzeichnis des Zielservers.

Sie können die Protokolldatei anzeigen: /opt/soft/log/rsync.log Der Befehl lautet wie folgt: Beobachten Sie die Echtzeitsynchronisationssituation.

    tail -f  /opt/soft/log/rsync.log

Fehlerbehebung:

/usr/local/bin/inotifywait: Fehler beim Laden gemeinsam genutzter Bibliotheken: libinotifytools.so.0: Gemeinsam genutzte Objektdatei kann nicht geöffnet werden: Keine solche Datei oder kein solches Verzeichnis

Das liegt daran, dass die Bibliotheksdatei nicht gefunden werden kann. Erstellen Sie einfach einen Softlink

ln -s /usr/local/lib/libinotifytools.so.0 /usr/lib64/libinotifytools.so.0

Das obige ist der detaillierte Inhalt vonEinführung in die Methode der Echtzeitsynchronisation zweier Server unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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