Im täglichen Gebrauch moderner Computer ist die Datensicherung besonders wichtig. Für Linux-Benutzer ist der Befehl rsync eine gängige Methode zum Sichern und Synchronisieren von Dateien. Es ermöglicht eine schnelle und effiziente Datensynchronisierung zwischen verschiedenen Systemen oder lokalen Ordnern.
Projekthintergrund: Zwischen Server A und Server B ist eine Datensynchronisierung erforderlich (entweder 1-zu-1 oder viele-zu-viele, hier ist ein einfaches 1-zu-1-Beispiel). Diese Lösung wird häufig für die Remote-Notfallwiederherstellung verwendet.
Es gibt grob zwei Arten von Synchronisierungslösungen, die auf Anwendungsszenarien basieren: geplante Synchronisierung und Echtzeitsynchronisierung. Die geplante Synchronisierung weist die Merkmale einer festen Synchronisierungszeit, einer schlechten Echtzeitleistung und eines geringen Ressourcenverbrauchs auf. Die Echtzeitsynchronisierung weist die Merkmale einer starken Echtzeitleistung, einer intensiven Synchronisierung und eines hohen Ressourcenverbrauchs auf.
1. Geplante Synchronisierung
1. Software installieren:
yum install rsync -y
2. Passwortfreie Anmeldung (Sie können auch einfachen Text verwenden, um eine interaktive Anmeldung zu simulieren, aus Sicherheitsgründen wird jedoch die Verwendung einer passwortfreien Anmeldung empfohlen):
ssh-keygen -t rsa
Nach der Generierung können Sie das Verzeichnis cd ~/.ssh/ aufrufen und den Inhalt des generierten Schlüssels ~/.ssh/id_rsa.pub nach /root/.ssh/authorized_keys auf dem Remote-Host kopieren
Viele Studenten hier sind neugierig, warum für die oben genannten Vorgänge kein Passwort eingegeben werden muss. Studenten, die sich mit der passwortfreien Anmeldung auskennen, können diese Einführung überspringen. Hier eine Einführung in das Prinzip des passwortfreien Logins:
rsa wird auch als asymmetrischer Schlüsselalgorithmus bezeichnet, was dem symmetrischen Schlüsselalgorithmus entspricht.
Der sogenannte symmetrische Schlüsselalgorithmus ist die Kommunikation zwischen A und B. Damit beide Parteien die Identität des anderen bestätigen können, einigen sich A und B auf einen Schlüssel k, der beiden Parteien bekannt ist, um die Identität wie folgt zu bestimmen:
A => (mk) B A sendet m Klartext und den K-Schlüssel an B, und B bestätigt, dass der K-Schlüssel mit der vorherigen Vereinbarung von A übereinstimmt, und kann dann sicher sein, dass die Identität von A wahr ist. Umgekehrt gilt das Gleiche auch für die Kommunikation von B nach A.
Asymmetrische Verschlüsselung erfordert zwei Schlüssel: öffentlichen Schlüssel und privaten Schlüssel. Der öffentliche Schlüssel und der private Schlüssel sind ein Paar. Wenn der öffentliche Schlüssel zur Verschlüsselung von Daten verwendet wird, können diese nur mit dem entsprechenden privaten Schlüssel entschlüsselt werden. Wenn ein privater Schlüssel zur Verschlüsselung von Daten verwendet wird, können diese nur mit dem entsprechenden öffentlichen Schlüssel entschlüsselt werden. Da für die Ver- und Entschlüsselung unterschiedliche Schlüssel verwendet werden, spricht man von asymmetrischer Verschlüsselung.
Der obige Vorgang teilt also den öffentlichen Schlüssel von Server A mit Server B (Remote-Host), sodass Server A nicht mehr die herkömmliche interaktive Passworteingabe benötigt, um sich bei Server B anzumelden. Server B kann dies über den öffentlichen Schlüssel von Server A bestätigen . Die Authentizität von Server A (privater Schlüssel).
[root@localhost ~]# cd ~/.ssh/ [root@localhost .ssh]# ls id_rsa id_rsa.pub known_hosts
3. Schreiben Sie ein Shell-Skript
[root@localhost ~]# vim back.sh #!/bin/sh rsync -avz -e 'ssh -p 22' root@x.x.x.x:/XXX/pub /data/
Hinweis: Die Datensynchronisierung von rsync ist in zwei verschiedene Aktionen unterteilt: Pull und Push. Testen Sie vor dem Schreiben des Skripts unbedingt, ob der Befehl normal ausgeführt werden kann.
4. Geplante Ausführungskonfiguration von Crontab (Skript jeden Tag um 15 Uhr ausführen)
Zu diesem Zeitpunkt ist die geplante Synchronisierung konfiguriert.
2. Echtzeit-Synchronisation
Einführung in Inotify
Inotify ist eine seit Version 2.6.13 verfügbare Linux-Funktion, die Dateisystemvorgänge wie Lese-, Schreib- und Erstellungsvorgänge überwacht. Inotify ist sehr reaktionsschnell, sehr einfach zu verwenden und viel effizienter als das geschäftige Abfragen von Cron-Aufgaben.
Beginnen Sie mit der Konfiguration von Inotify
Hinweis: rsync muss vor dem Start auf beiden Servern A und B installiert werden.
1. Passen Sie die inotify-Kernel-Parameter auf Server B an, vim /etc/sysctl.conf
fs.inotify.max_queued_events = 16384 fs.inotify.max_user_instances = 1024 fs.inotify.max_user_watches = 1048576
2. Sorgen Sie dafür, dass die Anpassung der Inotify-Kernel-Parameter sofort wirksam wird
sysctl -p
3. Installieren Sie das Inotify-Tool
# 先安装扩展包源,否则inotify-tools找不到 yum install epel-release yum install inotify-tools
4. Öffnen Sie zwei Terminals, ein Terminal führt Vorgänge wie Erstellen und Löschen aus und das andere führt das Inotify-Tool-Tool aus. Es funktioniert normal, wenn Sie das Inotify-Tool-Tool testen
inotifywait -mrq -e modify,create,move,delete /var/www/ inotifywait:用于持续监控,实时输出结果 inotifywatch:用于短期监控,任务完成后再出结果
vim /root/tongbu.sh
#!/bin/bash INOTIFY_CMD="inotifywait -mrq -e modify,create,attrib,move,delete /root/cs" RSYNC_CMD="rsync -avz -e 'ssh - p 22' /root/cs/ root@x.x.x.x:/root/cs/ " $INOTIFY_CMD | while read DIRECTORY EVENT FILE do if [ $(pgrep rsync | wc -l) -le 0 ] ; then $RSYNC_CMD fi done
6. Fügen Sie den automatischen Hintergrund hinzu, der beim Start ausgeführt wird, bearbeiten Sie die Datei /etc/profile und fügen Sie die folgende Anweisung in die letzte Zeile ein
/bin/bash /root/tongbu.sh &
Kurz gesagt ist der Befehl rsync ein sehr leistungsstarkes, flexibles und effizientes Tool zur Dateisynchronisierung und -sicherung. Ob im täglichen Einsatz oder im Produktionsumfeld, es kann seine einzigartigen Vorteile ausspielen. Durch die Einführung und das Üben dieses Artikels glaube ich, dass jeder die grundlegende Verwendung und die Fähigkeiten dieses Befehls beherrscht. Ich hoffe, Sie können den Befehl rsync besser nutzen, um Ihre Daten bei Ihrer zukünftigen Linux-Nutzung zu verwalten und zu schützen!
Das obige ist der detaillierte Inhalt vonSo einfach ist Backup: Erfahren Sie, wie Sie den Linux-Befehl rsync ganz einfach verwenden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!