Heim  >  Artikel  >  Backend-Entwicklung  >  Automatische Synchronisierung von Webseiten über rsync+inotify im Linux-System

Automatische Synchronisierung von Webseiten über rsync+inotify im Linux-System

高洛峰
高洛峰Original
2017-02-07 16:43:531125Durchsuche

Verwenden Sie mehrere Webserver, um einen Lastausgleich zu erreichen. Um die Konsistenz der Ressourcen auf dem Front-End-Webserver aufrechtzuerhalten, können aktualisierte Dateien auf dem Master-Server (Daten können geschrieben werden) mit anderen Slave-Servern synchronisiert werden. (nur Server) über rsync, aber es kann keine automatische Echtzeitsynchronisierung durchgeführt werden. Echtzeitsynchronisierung kann mit inotify

Master-Server: 192.168.6.205 inotify
Slave-Server: 192.168.6.36 rsync

1. Konfigurieren Sie auf dem Slave-Server rsync und aktivieren Sie den rsync-Dienst, damit der Hauptdienst Ressourcen mit dem Server synchronisieren kann

vim /etc/rsyncd.conf

uid = nginx
gid = nginx
port = 873
host all = 192.168.6.205
chroot verwenden = on
maximale Verbindungen = 4
timeout = ja
[wordpress]
path = / usr/local/nginx/html/wordpress
Kommentar = rsync-Dateien
Fehler ignorieren
schreibgeschützt = nein
Liste = ja
Benutzer authentifizieren = rsync
geheime Datei = /etc/ rsync.passwd

/etc/rsync.passwd Passwortkonfigurationsdatei erstellen

vim /etc/rsync.passwd
#user:password
rsync:rsync

2. Installieren Sie inotify-tools auf dem Hauptserver

tar -zxvf inotify-tools-3.14.tar.gz

cd inotify-tools-3.14
./configure –prefix=/usr/local/inotify
make && make install

Konfigurieren Sie die rsync-Passwortdatei auf dem Master-Server, um Daten mit dem Slave-Server zu synchronisieren

vim /etc/rsync.passwd
#Password
rsync

Skript erstellen

vim inotifyrsync.sh

#!/bin/bash

host=192.168.6.36
src=/usr/local/nginx/html/wordpress/
dst=wordpress
user =rsync
inotifywait=/usr/local/inotify/bin/inotifywait
rsync=/usr/bin/rsync
$inotifywait -mrq –timefmt '%d/ %m/%y %H:% M' –format '%T %w%f' -e changes,delete,create,attrib $src | while read files
do
$rsync -vzrtopg –delete –. progress –password-file=/etc/ rsync.passwd $src $user@$host::$dst
echo „${files} was rsynced“ >>/tmp/rsync.log 2>&1
erledigt

Weitere verwandte Artikel zur automatischen Webseitensynchronisierung über rsync+inotify in mehreren Linux-Systemen finden Sie auf der chinesischen PHP-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