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
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:
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
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.
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
Zielserver: Starten Sie zuerst den rsync-Hintergrunddienst: /usr/bin/rsync --daemon
Quellserver: Führen Sie inotify_bak.sh aus &
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
/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!