Heim >Betrieb und Instandhaltung >Betrieb und Wartung von Linux >So implementieren Sie die Echtzeit-Dateisynchronisierung zwischen zwei Servern unter Linux

So implementieren Sie die Echtzeit-Dateisynchronisierung zwischen zwei Servern unter Linux

黄舟
黄舟Original
2017-06-07 10:31:002549Durchsuche

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 Der Zweck von /opt/bak/test/

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

Implementierungsmethode: über rsync+inot ify -Tools-Kombination zum Erreichen von

Vorbereitungsarbeit:

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

Details anzeigen: LinuxVertrauensbeziehung hinzufügen und ohne Passwort anmelden

Erfordert InstallationSoftware:

1 Synchronisierungssoftware

Muss

sowohl auf dem Quellserver als auch auf dem Zielserver installiert werden. Quellserver: Es handelt sich um einen Rsync-Client, keine Konfiguration ist erforderlich.

Zielserver: Ja Als Rsync-Server muss er in /etc/rsyncd.conf konfiguriert werden. Inhalt

2. inotify-tools-Tool

Dieses Tool ist ein Echtzeit-Dateiüberwachungstool und erfordert ein Linux-Betriebssystem Kernel-Unterstützung. Kernel-Unterstützung erfordert mindestens Version 2.6.13

Überprüfen Sie, ob das Betriebssystem dies unterstützt, und führen Sie Folgendes aus:

uname -r Version anzeigen

Rückgabe:

    2.6.32-358.6.1.el6.x86_64

Wenn Version 2.6.32 größer als 2.6.13 ist, wird sie unterstützt.

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 Ausführungsberechtigungen : chmod +x inotify_bak.sh

Führen Sie dann Folgendes aus: nohup inotify_bak.sh & stellen Sie es in den Hintergrund und führen Sie es aus

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 🎜> Im Quellserververzeichnis Erstellen Sie im Skript inotify_bak.sh neue Verzeichnisse und Dateien und synchronisieren Sie diese 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 Echtzeit-Synchronisationssituation.

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

Dies liegt daran, dass die Bibliotheksdatei nicht gefunden werden kann. Erstellen Sie einfach einen Softlink
/usr/local/bin/inotifywait: error while loading shared libraries: libinotifytools.so.0: cannot open shared object file: No such file or directory


Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Echtzeit-Dateisynchronisierung zwischen zwei Servern 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