Inhaltsverzeichnis
②.Allgemeine Befehle für die Rsync-Sicherung
③.Zwei Ausdrucksmethoden der Konfigurationsquelle
4. Rsync-Synchronisationsquelle
5. Rsync-Konfigurationsprozess
②.Konfigurationsdatei Rsyncd.conf
④.Aktivieren Sie den Rsync-Dienst
6. Konfigurieren Sie die Rsync-Downlink-Synchronisierung
②. Ä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. Konfigurieren Sie die Echtzeitsynchronisierung von Rsync+Inotify
②.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
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 istb. 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 ModulnameBeispiel: [email protected]::wwwroot /opt
Format 2:
rsync://Benutzername@Hostadresse/Name des gemeinsam genutzten ModulsBeispiel: 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 Installationsmechanismusyum 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 8732> 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 Zeilechmod 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 wurdecd /var/www/html
#Wechseln Sie zum freigegebenen Verzeichnis
berühren Sie accp.html bccp.html
⑤.实现下行同步Slave
systemctl stop firewalld
systemctl disable firewalld
setenforce 0yum 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 Konsistenzll 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 InstanzDie 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 wurdersync --daemon
netstat -natp | grep rsync
#Starten Sie den Dienst erneut und überprüfen Sie die Portnummer zur Bestätigungchmod 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 Instanzvim /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