Rsync-Remote-Synchronisierung (Downstream-Synchronisierung) | Rsync+inotify Echtzeit-Synchronisierungsbereitstellung

Inhaltsverzeichnis

1. Einführung in rsync

1.Rsync-Konzept

2.Rsync-Funktionen

③.Zusammenfassung

3. Rsync-Sicherung

①.Rsync-Sicherungsmethode

②.Allgemeine Befehle für die Rsync-Sicherung

③.Zwei Ausdrucksmethoden der Konfigurationsquelle 

4. Rsync-Synchronisationsquelle 

5. Rsync-Konfigurationsprozess 

①.Grundidee

②.Konfigurationsdatei Rsyncd.conf

③.Unabhängige Kontodatei

④.Aktivieren Sie den Rsync-Dienst

6. Konfigurieren Sie die Rsync-Downlink-Synchronisierung 

①.Umgebungsvorbereitung

②. Ändern Sie die Rsync-Konfigurationsdatei des Hauptservers 

③.Erstellen Sie ein Benutzerkonto und ein Passwort auf dem Hauptserver 

④. Starten Sie den Rsync-Dienst des Hauptservers 

⑤. Implementieren Sie den Downlink-Synchronisationsslave 

⑥.Der Salve-Server erstellt ein interaktionsfreies Login-Passwort

⑦. Aktivieren Sie die Aktiv- und Standby-Synchronisierung 

⑧.Erstellen Sie regelmäßig geplante Aufgaben

⑨.Überprüfen Sie den Synchronisationseffekt erneut

7. Rsync-Echtzeitsynchronisation

 2. Einführung in Inotify

1. Konzept benachrichtigen

2. Konfigurieren Sie die Echtzeitsynchronisierung von Rsync+Inotify 

①.Umgebungsvorbereitung

②.Master deaktiviert den schreibgeschützten Modus und aktiviert das freigegebene Verzeichnis 

③. Optimieren Sie die Parameter des Slave-Kernels 

④.yum installiert inotify-tools 

⑤.slave schreibt automatische Überwachungs- und Synchronisierungsskripte 

⑥.Führen Sie das Skript zur automatischen Überwachungssynchronisierung aus 

⑦.Überprüfung 


1. Einführung in rsync

1.Rsync-Konzept

Ein schnelles inkrementelles Backup-Tool

Rsync ist ein Open-Source-, schnelles, multifunktionales und hervorragendes Tool, das eine vollständige und inkrementelle lokale oder Remote-Datensynchronisierungssicherung realisieren und Datensicherungs- und Migrationsfunktionen realisieren kann, ohne die Attributinformationen der Originaldaten zu ändern.

Die Rsync-Software eignet sich für mehrere Betriebssystemplattformen wie Unix/Linux/Windows. Unterstützt lokale Replikation oder Synchronisierung mit anderen SSH- und Rsync-Hosts.

Rsync ist ein schnelles und sehr vielseitiges Tool zum Kopieren von Dateien. Es kann lokal, „remote kopiert“ oder remote als Daemon kopieren. Es bietet eine große Anzahl von Parametern zur Steuerung verschiedener Aspekte seines Verhaltens und ermöglicht eine sehr flexible Möglichkeit, Dateiübertragungen und -kopien zu implementieren.

Bekannt für seinen Delta-Transfer-Algorithmus. Rsync-Abhörport: 873 Rsync-Betriebsmodus: c/s

2.Rsync-Funktionen

Unterstützt das Kopieren gewöhnlicher Dateien und spezieller Dateien wie Linkdateien, Gerätedateien usw.
Unterstützt die Funktion zum Ausschließen bestimmter Dateien oder der Verzeichnissynchronisierung, was dem Ausschluss entspricht Die Funktion des Verpackungsbefehls tar Unterstützt die Übertragung im Prozessmodus „Anonym“ oder „Authentifizierung“ (kein Systembenutzer erforderlich). Sichere Datensicherung und -spiegelung Dateidaten (Server und Client) können über Socket (Prozessmodus) übertragen werden Sie können rcp, rsh, ssh und verwenden andere Methoden zur Zusammenarbeit. Tunnelverschlüsselte Dateiübertragung (Rsync selbst verschlüsselt keine Daten) Inkrementelles Kopieren ist möglich, das heißt, nur geänderte Daten werden kopiert, sodass die Datenübertragungseffizienz sehr hoch ist.
kann alle Attribute der Originaldatei oder des Originalverzeichnisses, wie Berechtigungen, Zeit, weiche und harte Verbindungen, Eigentümer und Gruppe, unverändert lassen.



③.Zusammenfassung

rsync kann die ursprünglichen Dateiberechtigungen, Zeit, Soft- und Hardlinks usw. beibehalten.

Für die Installation sind keine besonderen Berechtigungen erforderlich

Schnell:
Während der ersten Synchronisierung kopiert rsync den gesamten Inhalt, aber beim nächsten Mal werden nur die geänderten Dateien übertragen.
rsync überträgt Die Daten können während des Prozesses komprimiert und dekomprimiert werden, sodass weniger Bandbreite verwendet werden kann

Sicherheit:
Sie können scp, ssh usw. zum Übertragen von Dateien verwenden
Natürlich können Sie auch eine Verbindung über einen direkten Socket herstellen
Unterstützt anonyme Übertragung, um die Website-Spiegelung zu erleichtern

3. Rsync-Sicherung

①.Rsync-Sicherungsmethode

a. Vollständige Sicherung
Alle Daten werden übertragen. Die Originaldateien und die neuen Dateien werden zusammen übertragen und vollständig kopiert, was ineffizient ist

b. Differenzielle Sicherung: Sichern Sie Daten, die sich seit der letzten vollständigen Sicherung geändert haben (er zielt auf die letzte vollständige Sicherung ab und die Archivattribute werden während des Sicherungsvorgangs nicht gelöscht). 

c. Inkrementelle Sicherung
Verwenden Sie vor der Datenübertragung einige Algorithmen, um die Daten, die Sie haben, mit den Daten zu vergleichen, die ich habe, und übertragen Sie die verschiedenen Daten inkrementell über das Netzwerk. , höhere Effizienz

②.Allgemeine Befehle für die Rsync-Sicherung

Grundformat: rsync [Optionen] ursprünglicher Speicherort Zielspeicherort

Beispiel: rsync -avz /test /test1 

Ähnlich wie beim cp-Befehl archivieren und komprimieren Sie das aaa-Verzeichnis und die darin enthaltenen Dateien nach /opt und zeigen detaillierte Informationen an
Grundformat: rsync [Option] ursprünglicher Speicherort Zielspeicherort< /span> a> --checksum: Bestimmen Sie anhand der Prüfsumme, ob Dateien übersprungen werden sollen (und nicht anhand der Dateigröße oder der Änderungszeit)  --delete: Dateien löschen, die am Zielspeicherort, aber nicht am ursprünglichen Speicherort vorhanden sind. -D: Gerätedateien und andere spezielle Dateien behalten. -A: ACL- und Attributinformationen beibehalten. -H: Hardlink-Dateien behalten. -o: Behält die Besitzermarkierung der Datei bei (nur für Superuser) -g: Behält die Gruppenmarkierung der Datei bei (nur für Superuser) -t: Behalten Sie den Zeitstempel der Datei bei. -p: Dateiberechtigungen beibehalten . -a: Archivmodus, Dateiberechtigungen, Attribute und andere Informationen beibehalten, entspricht der Kombinationsoption „-rlptgoD“. -z: Beim Übertragen von Dateien komprimieren. -v: Zeigt detaillierte (ausführliche) Informationen zum Synchronisierungsprozess an. -l: Symbolische Linkdateien werden weiterhin als symbolische Linkdateien kopiert. -r: rekursiver Modus, einschließlich aller Dateien im Verzeichnis und in Unterverzeichnissen.
Allgemeine Optionen:













③.Zwei Ausdrucksmethoden der Konfigurationsquelle 

Sicherungsformat:
Format 1:
Benutzername@Hostadresse::gemeinsamer Modulname

Beispiel: [email protected]::wwwroot /opt
Format 2:
rsync://Benutzername@Hostadresse/Name des gemeinsam genutzten Moduls 

Beispiel: rsync://[email protected]/wwwroot /opt

4. Rsync-Synchronisationsquelle 

In einer Remote-Synchronisierungsaufgabe wird der Client, der für die Initiierung des Rsync-Synchronisierungsvorgangs verantwortlich ist, als Initiator bezeichnet, und der Server, der für die Reaktion auf den Rsync-Synchronisierungsvorgang vom Client aus verantwortlich ist, wird als Synchronisierungsquelle (Sicherungsquelle) bezeichnet. Während des Synchronisierungsprozesses ist die Synchronisierungsquelle dafür verantwortlich, den ursprünglichen Speicherort der Datei bereitzustellen, für den die initiierende Seite Leseberechtigungen haben sollte.
Beispiel:
Server A synchronisiert die Daten von Server B und Server B ist die Sicherungsquelle.
Im Gegenzug Server B synchronisiert die Daten von Server A, dann ist Server A die Sicherungsquelle

 

5. Rsync-Konfigurationsprozess 

①.Grundidee

- Erstellen Sie die Konfigurationsdatei rsyncd.conf und eine unabhängige Kontodatei.
- Aktivieren Sie den --daemon-Modus von rsync

②.Konfigurationsdatei Rsyncd.conf

- Authentifizierungskonfiguration für Authentisierungsbenutzer, Geheimdatei. Wenn sie nicht hinzugefügt wird, ist sie anonym

-Muss manuell erstellt werden, die Syntax ähnelt der Samba-Konfiguration

③.Unabhängige Kontodatei

- Verwenden Sie das Datensatzformat „Benutzername:Passwort“
– Ein Benutzerdatensatz pro Zeile
– Unabhängige Kontodaten, nicht abhängig vom System Konto

④.Aktivieren Sie den Rsync-Dienst

- Dienste allein bereitstellen (rsync --daemon) über „--daemon“
– „kill $(cat /var/run/rsyncd.pid)“ ausführen. Dienst herunterfahren

6. Konfigurieren Sie die Rsync-Downlink-Synchronisierung 

①.环境准备

Gastgeber CPU-Name IP Adresse Hauptsoftware
Meister CentOS 7 192.168.40.10 rsync
Sklave CentOS 7 192.168.40.20 rsync

②.修改主服务器Rsync配置文件 

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
#Schließen Sie die Firewall und den Installationsmechanismus

yum install -y httpd rsync
#rsync-Systeme werden im Allgemeinen standardmäßig installiert. httpd wird installiert, um das Verzeichnis /var/www/html zu generieren (das als freigegebenes Verzeichnis verwendet wird). Verzeichnis später)< /span>

vim /etc/rsyncd.conf
Rsync-Konfigurationsdatei bearbeiten
uid = root                                                                                                                                                                                                                                vim = root                                                              #Groupid chroot verwenden = ja                                                                        Im Quellverzeichnis eingesperrt Adresse = 192.168.40.10                        #Listening-Adresse Port 873                                           #Die Standard-Portnummer ist 873



                                                                        2> pid file = /var/run/rsyncd.pid                                                                                                                                     's ' s ' s ' s ' s ' t ‐ ‐ ‐ ‐ ‐ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​​ ​ ​ ​ ​ ​ ​ ​ ​ > comment = Document Root of www.accp. com # [wwwroot]                                                                                                                                                                                                                                         ​ ​ ​ #Quellenverzeichnispfad









③.主服务器创建用户账号和密码 

vim /etc/rsyncd_users.db
accp:abc123
#Bearbeiten Sie die Benutzerkontodatei, das feste Format ist [Name:Passwort], eine pro Zeile

chmod 600 /etc/rsyncd_users.db
#Offizielle Anforderung, am besten nur 600 aktivieren!

④.开启主服务器rsync服务 

rsync --daemon
#Starten Sie den Dienst
netstat -natp | grep rsync
#Erkennen Sie den Port Nummer, Bestätigen Sie, ob der Dienst erfolgreich gestartet wurde

cd /var/www/html
#Wechseln Sie zum freigegebenen Verzeichnis
berühren Sie accp.html bccp.html

⑤.实现下行同步Slave 

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

yum install -y rsync

cd /opt
mkdir accp
chmod 777 accp

⑥.salve服务器创建免交互登陆密码

vim /etc/server.pass
abc123
#编辑免交互密钥文件,第一行为密码

chmod 600 /etc/server.pass
#给密钥文件赋权600

⑦.开启主备同步 

rsync -az --delete --password-file=/etc/server.pass [email protected]::wwwroot /opt/accp
#rsync, verwenden Sie den Schlüssel The Die Datei /etc/server/pass entspricht dem accp-Benutzer und die gemeinsam genutzte Moduldatei mit der IP-Adresse 192.168.40.10 wird komprimiert, archiviert und mit dem Verzeichnis /opt/accp des aktuellen Servers synchronisiert. Der Differenzinhalt wird zur Beibehaltung gelöscht Konsistenz

ll accp
#Überprüfen Sie, ob die Downlink-Synchronisierung erfolgreich ist

⑧.创建周期计划任务

 crontab -e
 0 0 * * *   rsync -az --delete --password-file=/etc/server.pass [email protected]::wwwroot /opt/accp
systemctl restart crond
systemctl enable crond
 

⑨.再次验证同步效果

7. Rsync-Echtzeitsynchronisation

①. Mängel der regelmäßigen Synchronisierung

a. Die Backup-Ausführungszeit ist festgelegt, die Verzögerung ist offensichtlich und die Echtzeitleistung ist schlecht
b. Wenn sich die Synchronisierungsquelle längere Zeit nicht ändert, Intensive periodische Aufgaben sind unnötig

②.Vorteile der Echtzeitsynchronisation

a. Sobald sich die Synchronisierungsquelle ändert, starten Sie sofort die Sicherung
b. Solange sich die Synchronisierungsquelle nicht ändert, wird die Sicherung nicht durchgeführt

 

 2. Einführung in Inotify

1. Konzept benachrichtigen

Inotify ist eine Funktion des Linux-Kernels, die Änderungen im Dateisystem überwachen und auf Benachrichtigungen reagieren kann. Die Hilfssoftware: inotify-tools.

①.Inotify-Kernel-Parameter anpassen (Optimierung)

/etc/sysctl.conf (Kernel-Parameterkonfigurationsdatei)

max_queue_events #Größe der Überwachungsereigniswarteschlange
max_user_instances #Maximale Anzahl von Überwachungsinstanzen
max_user_watches #Maximale Anzahl von Überwachungsdateien pro Instanz  

Die konfigurierte Überwachungsmenge sollte größer sein als die Gesamtzahl der Dateien des Überwachungsziels

②.Verwenden Sie das Hilfstool inotify-tools

inotifywait: Wird zur kontinuierlichen Überwachung und Ausgabe von Ergebnissen in Echtzeit verwendet

inotifywatch: Wird zur kurzfristigen Überwachung verwendet und gibt Ergebnisse aus, nachdem die Aufgabe abgeschlossen ist

例:
inotifywait -mrq -e changes,create,move,delete /var/www/html

--Parametererklärung--
-m: Kontinuierliche Überwachung
-r: Rekursive Überwachung aller Unterobjekte
-q: Vereinfachen Sie die Ausgabeinformationen
-e: Geben Sie an, welche Ereignistypen überwacht werden sollen
ändern: Ändern
erstellen: Erstellen
verschieben: verschieben
löschen: löschen

③. Schreibideen:
a. Legen Sie zunächst zwei Variablen fest: Überwachung und Ausführungssicherung
b. Verwenden Sie while und read, um kontinuierlich Überwachungsergebnisse zu erhalten
c. Führen Sie basierend auf den Ergebnissen verschiedene Operationen aus

2. Konfigurieren Sie die Echtzeitsynchronisierung von Rsync+Inotify 

①.环境准备

Gastgeber CPU-Name IP Adresse Hauptsoftware
Meister CentOS 7 192.168.40.10 rsync
Sklave CentOS 7 192.168.40.20 rsync /inotify

②.Master 关闭只读模式并为共享目录赋权 

vim /etc/rsyncd.conf
read only = no
#Schreibgeschützten Modus ausschalten, sonst ist das Schreiben nicht möglich


kill `cat /var/run/rsyncd.pid`
#Nachdem Sie die Konfigurationsdatei geändert haben, müssen Sie den Dienst neu starten. Hier verwenden wir die Methode, den Prozess direkt abzubrechen ID
netstat -natp | grep rsync
#Überprüfen Sie, ob der Dienst beendet wurde

rsync --daemon
netstat -natp | grep rsync
#Starten Sie den Dienst erneut und überprüfen Sie die Portnummer zur Bestätigung

chmod 777 /var/www/html
#Autorisieren Sie das freigegebene Verzeichnis 777

③.优化 Slave 内核参数 

cat /proc/sys/fs/inotify/max_queued_events
cat /proc/sys/fs/inotify/max_user_instances 
cat /proc/sys /fs/inotify/max_user_watches 
#Zeigen Sie die aktuellen Standardparameter des Inotify-Kernels an
#In der Reihenfolge die Überwachungsereigniswarteschlange, die am häufigsten überwachten Instanzen und die am häufigsten überwachten Dateien für jede Instanz

vim /etc/sysctl.conf
fs.inotify.max_queued_events = 32768
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 1048576
#优化内核参数


sysctl -p
#Laden Sie die Kernel-Parameterkonfigurationsdatei, um sie wirksam zu machen

④.yum 安装inotify-tools 

yum install -y gcc gcc-c++ 
yum -y install inotify-tools

⑤.slave编写自动监控同步脚本 

vim /opt/inotify.sh
#!/bin/bash
INOTIFY_CMD="inotifywait -mrq -e create,delete,move ,modify,attrib /opt/accp/"
RSYNC_CMD="rsync -azH --delete --password-file=/etc/server.pass /opt/accp/ [email protected] .40.10::wwwroot"

$INOTIFY_CMD | while read DIRECTORY EVENT FILE
do
    if [ $(pgrep rsync | wc -l) -le 0 ] ; then< /span> ----Detaillierte Erklärung----< / a> INOTIFY_CMD="inotifywait -mrq -e create,delete,move,modify,attrib /opt/accp/" #RSYNC_CMD-Variable: Accp-Benutzer aktivieren, /etc/server .Pass-Passwort-Schlüsseldatei, komprimieren und archivieren Sie die Dateien im Verzeichnis /opt/accp, behalten Sie die Hardlink-Dateien bei und synchronisieren Sie sie mit dem Verzeichnis /var/www/html, das durch das gemeinsam genutzte Modul 192.168.40.10 definiert ist, und löschen Sie das Differential Inhalt, um die Konsistenz zu wahren< /span> RSYNC_CMD="rsync -azH --delete --password-file=/etc/server.pass /opt/accp/ [email protected]::wwwroot" #INOTIFY_CMD-Variable: Überwachen Sie kontinuierlich die Erstellungs-, Lösch-, Verschiebungs-, Änderungs- und Zeitänderungsvorgänge im Verzeichnis /opt/accp #!/bin/bash erledigt     fi
        $RSYNC_CMD







$INOTIFY_CMD | while read DIRECTORY EVENT FILE ​ #Kontinuierliche Überwachung...
do
    if [ $(pgrep rsync | wc -l) - le 0 ]; dann


⑥.执行自动监控同步脚本 

cd /opt/
chmod +x inotify.sh
./inotify.sh &
# Geben Sie dem Skript die Berechtigung und führen Sie es im Hintergrund aus
chmod +x /etc/rc.d/rc.local
echo '/opt/inotify .sh& #39; >> /etc/rc.d/rc.local
#Automatisches Ausführungsskript beim Booten hinzufügen
cd /opt/accp< /span>

touch cccp.html
rm -rf accp.html
#Erstellen Sie eine neue HTML-Datei und löschen Sie die vorherige Datei< a i =3> ls #Erneut bestätigen

⑦.Überprüfung 

cd /var/www/html
ls
#Sie können sehen, dass die Echtzeitsynchronisierung erfolgreich war
#Es wird später wiederhergestellt. Sie können es weiter versuchen. Was auch immer der Master im freigegebenen Verzeichnis tut, hat keine Auswirkungen auf den Slave und die Vorgänge des Slaves im Verzeichnis werden mit dem Master synchronisiert

 

おすすめ

転載: blog.csdn.net/weixin_52269501/article/details/129962693