So richten Sie den RSYNC -Daemon unter Linux ein

So richten Sie den RSYNC -Daemon unter Linux ein

In einem früheren Artikel haben wir einige grundlegende Beispiele für die Verwendung gesehen rsync unter Linux, um Daten effizient zu übertragen. Wie wir gesehen haben, können wir sowohl eine Remote -Shell als auch eine Remote -Shell verwenden, um Daten mit einem Remote -Computer zu synchronisieren ssh oder der rsync Daemon. In diesem Artikel konzentrieren wir uns auf die letztere Option und sehen, wie man installiert und konfiguriert ist rsyncd Bei einigen der am häufigsten verwendeten Linux -Verteilungen.

In diesem Tutorial lernen Sie:

  • So installieren und konfigurieren Sie den RSYNC -Daemon

Softwareanforderungen und Konventionen verwendet

Softwareanforderungen und Linux -Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder Softwareversion verwendet
System Verteilungsunabhängige
Software
  • Rsync
  • Rsyncd (der RSYNC -Daemon)
Andere Es sind keine besonderen Anforderungen erforderlich, um diesem Tutorial zu folgen
Konventionen # - erfordert, dass gegebene Linux -Befehle mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mit Verwendung von ausgeführt werden können sudo Befehl
$ - Erfordert, dass die angegebenen Linux-Befehle als regelmäßiger nicht privilegierter Benutzer ausgeführt werden können

Installation

Installation der rsync Daemon ist wirklich einfach, da das Paket und seine Abhängigkeiten standardmäßig in den Repositories der Hauptlinux -Verteilungen verfügbar sind. An Debian Und Archlinux, Die Dateien im Zusammenhang mit dem RSYNC -Daemon sind enthalten rsync Paket, also müssen wir nur Letzteres installieren. Auf Debian können wir den APT -Paketmanager verwenden:

$ sudo apt-Get Installieren Sie RSYNC

Auf Archlinux verwenden wir stattdessen Pacman:

$ sudo pacman -s rsync

Auf Verteilungen wie Fedora stattdessen, rsyncd, Der RSYNC -Daemon wird in seinem eigenen Paket verteilt, rsync-daemon. In jüngsten Versionen der Verteilung können wir das verwenden, um sie zu installieren DNF Paket-Manager. Das Hauptpaket von RSYNC wird als Abhängigkeit installiert:



$ sudo dnf installieren rsync-daemon 

Die RSYNCD -Konfigurationsdatei

Einmal rsyncd ist installiert, wir können es mit dem konfigurieren /etc/rsyncd.Conf Datei. Die Datei ist bereits in den Paketen Archlinux und Fedora enthalten, während sie bei Debian von Grund auf neu erstellt werden muss. Hier ist der Inhalt der Datei auf Fedora:

# /etc /rsyncd: Konfigurationsdatei für den RSYNC -Daemon -Modus # siehe RSYNCD.Conf Man -Seite für weitere Optionen. # Konfigurationsbeispiel: # uid = nobel # gid = nobod.PID # exklued = Lost+Found/ # Übertragungsprotokolling = yes # timeout = 900 # Ignorieren Sie nicht readable = yes # dont compress = *.gz *.TGZ *.Reißverschluss *.z *.Z *.Drehzahl *.Deb *.BZ2 # [ftp] # path = /home /ftp # comment = ftp Exportbereich 

Alle Parameter werden kommentiert und als Konfigurationsbeispiel angezeigt: Sie stellen einen guten Ausgangspunkt für unsere Diskussion dar. Das erste, was wir bemerken müssen, ist, wie ein RSYNCD Modul ist definiert:

[FTP] PATH = /HOME /FTP Kommentar = FTP -Exportbereich

Ein Modul ist in einer „Strophe“ definiert, die in diesem Fall mit der Deklaration des Modulnamens zwischen quadratischen Klammern beginnt [FTP]. Ein Modul ist einem Verzeichnis im Dateisystem zugeordnet, das mit dem angegeben ist Weg Streit. Alle in der Strophe bereitgestellten Parameter sind lokal, Sie werden also nur auf das zugehörige Modul angewendet; Einstellungen vor Strophen sind vorhanden global. Schauen wir uns einige von ihnen kurz an.



Globale Parameter

Wie wir gerade sagten, sind globale Parameter diejenigen, die zu Beginn der definiert sind /etc/rsyncd.Conf Datei vor einer Moduldefinition oder optional in a [global] Abschnitt. Hier werden wir einige der interessantesten besprechen.

Der Parameter „PID -Datei“

Dieser Parameter wird verwendet, um den Pfad einer Datei anzugeben, in der die RSYNCD PID (Prozess -ID) wird geschrieben. Standardmäßig wird der Dämon -Start abgebrochen, wenn die angegebene Datei bereits vorhanden ist. Es ist möglich, dieses Verhalten zu ändern und die Datei stattdessen überschrieben zu lassen, indem der RSYNC -Daemon mit dem starten wird --dparam = pid -file = Datei Möglichkeit.

Der Parameter "Port"

Durch die Verwendung dieses globalen Parameters können wir einen alternativen Port für den RSYNC -Daemon angeben. Der Standard ist TCP Port 873. Diese Option kann beim Start des Daemons überschrieben werden, indem die Verwendung der verwendet wird --Hafen Möglichkeit.

Der Parameter "Adresse"

Wir können den globalen Gebrauch nutzen Adresse Parameter Um die Adresse anzugeben, wird der RSYNC -Daemon hören. Die in der Datei angegebene Adresse kann überschrieben werden, indem der Daemon mit dem starten wird --Adresse Option, die gewünschte Adresse als Argument angeben.

Zusätzlich zu den oben gesehenen Parametern im globalen Abschnitt können wir auch angeben Modulparameter. Wenn wir dies tun, werden die angegebenen Parameterwerte die Standardwerte für alle Module.

Modulparameter

Die Modulparameter sind die in einem Modulabschnitt angegeben und werden nur auf diesen Abschnitt angewendet. Lassen Sie uns einige von ihnen sehen.

Der Parameter "Pfad"

Dieser Parameter ist obligatorisch und muss für jedes Modul bereitgestellt werden. Es wird verwendet, um den Pfad des vom Modul selbst verfügbaren Verzeichnisses anzugeben.

Der Parameter "Kommentar"

Der Parameter „Kommentar“ ist optional: Wir können eine Zeichenfolge angeben, die in der Nähe des Namens des Moduls angezeigt wird, wenn der Client eine Liste der verfügbaren anfordert.

Machen Sie ein Modul nur lesen oder schreiben

Standardmäßig werden alle Module als schreibgeschützt erstellt. Dies bedeutet, dass ein Client es nur als Quelle für die Übertragung verwenden kann. Dieses Verhalten kann geändert werden, indem der Parameter „Nur Lesen“ auf festgelegt wird NEIN oder FALSCH. Das Modul kann auch nur mit der Verwendung der Schreibschreibungen erstellt werden nur schreiben Parameter und Bereitstellung Ja oder WAHR als Wert. Wenn dieser letztere Parameter aktiviert ist, kann der Client keine Dateien aus dem Modul herunterladen. Um Dateien aus dem Modul zu lesen oder darauf zu schreiben, müssen auch die Standard -UNIX -Berechtigungen respektiert werden.

Die UID- und GID -Parameter

Der uid Und gid Die kombinierten Parameter definieren die Berechtigungen, die die Übertragung haben wird. Ersteres wird verwendet, um den Benutzer zu definieren. Die Übertragung wird ausgeführt, wenn der Daemon als Root ausgeführt wird (wenn der Daemon mit den Berechtigungen eines normalen Benutzers ausgeführt wird, ändert sich der Benutzer nicht). Der Benutzer kann durch seinen Benutzernamen oder seine numerische ID identifiziert werden. Letzteres definiert einen oder mehrere Gruppenname oder Gruppen -ID, die für die Übertragung verwendet werden sollen.

Der Standardwert für beide Optionen ist niemand, Das heißt, wenn der Daemon als Wurzel ausgeführt wird, werden die Überweisungen mit den Privilegien der durchgeführt niemand Benutzer und der niemand Gruppe (auf Debian die NOWO -Gruppe existiert nicht - Nogroup wird stattdessen verwendet).

Der Parameter „Chroot verwenden“

Durch Verwendung der Verwenden Sie Chroot Parameter können wir definieren, ob RSYNC vor Beginn der Übertragung den definierten Modulpfad auf den definierten Modulpfad schöpfen sollte. Dies kann verwendet werden, um die Sicherheit durchzusetzen. Um dies zu nutzen, muss der Dämon so konfiguriert werden. Standardmäßig ist diese Option auf Ja.

Der Parameter „Max Connections“

Dies ist ein weiterer sehr nützlicher Parameter, der verwendet wird, um die maximale Anzahl gleichzeitiger Verbindungen zu definieren, die vom Daemon unterstützt werden. Der für den Parameter verwendete Standardwert ist 0, was bedeutet, dass keine Grenze festgelegt wird. Wenn der bereitgestellte Wert eine negative Zahl ist, sind die Verbindungen vollständig deaktiviert.

Dateien aus der Übertragung ausschließen und eingeben

Manchmal möchten wir einige Dateien aus der Übertragung ausschließen: Wir können die Aufgabe durch die Verwendung des ausschließen Parameter, der eine von Raum getrennte Liste von Mustern akzeptiert. Die von den Mustern übereinstimmenden Dateien werden nicht synchronisiert. Der enthalten Der Parameter funktioniert auf die gleiche Weise, aber es wird verwendet, um explizit Einschlüsse zu definieren.



Eine andere Möglichkeit, Dateien auszuschließen oder explizit einzubeziehen ausgeschlossen von Und einschließen von Parameter. Mit diesen Parametern können wir den Pfad der Dateien angeben, die Ausschluss- und Einschlussmuster enthalten. Die Dateien müssen ein Muster pro Zeile enthalten.

Der ausschließen, enthalten, ausgeschlossen von Und einschließen von Parameter können nur einmal in einem Modul angezeigt werden.

Der Parameter "Timeout"

Wenn wir das verwenden rsync Kunde können wir die bereitstellen--Auszeit Option zum Festlegen eines maximalen E/A -Zeitlimits in Sekunden: Wenn in der angegebenen Zeit keine Daten übertragen werden, wird die Übertragung abgebrochen. Der Auszeit Option der rsync Daemon Kann verwendet werden, um das vom Client definierte Zeitüberschreitungsumfang zu überschreiben. Dies kann nützlich sein, um zu vermeiden, dass ein toter Klient unbestimmt ist. Die Zeitüberschreitung wird in Sekunden ausgedrückt: 0 ist die Standardeinstellung und es bedeutet kein Timeout.

Die "nicht wiederlesbar ignorieren" und "nicht komprimieren"

Der Ignorieren Sie nicht überlesene Die Option wird verwendet, um RSYNC anzuweisen, Dateien zu ignorieren, die vom Benutzer nicht lesbar sind. Der Nicht komprimieren Die Option wird stattdessen verwendet, um eine läbe getrennte Liste der von Fall unempfindlichen Muster bereitzustellen, die zur Auswahl von Dateien verwendet werden, die während der Übertragung nicht komprimiert werden dürfen. Dies kann besonders nützlich sein, um die Komprimierung bereits komprimierter Dateien zu vermeiden.

Die Parameter „Hosts erlauben“ und „Hosts verweigern“

Durch Verwendung der Hosts erlauben Und Gastgeber leugnen Parameter können wir eine Liste von von Kommas getrennten Mustern angeben, die mit dem Hostnamen oder der IP von Clients übereinstimmen, um ihnen Zugriff auf sie zuzulassen oder zu verweigern. Die beiden Parameter können kombiniert und in einem Modul zusammen angezeigt werden. Standardmäßig dürfen alle Hosts eine Verbindung herstellen.

Beispiel einer Modulkonfiguration

Lassen Sie uns ein Beispiel erstellen und ein Modul auf einem RSYNC -Server erstellen. Das erste, was wir tun müssen, ist, den eingehenden Verkehr einzulegen TCP Hafen 873. Wenn wir Firewalld verwenden, können wir das vorkonfigurierte hinzufügen rsyncd Service für die Zone, die wir verwenden:

$ sudo firewall-cmd --permanent --add-service rsyncd && sudo Firewall-cmd-Reload

Wenn wir UFW verwenden, können wir stattdessen ausführen:

$ sudo ufw erlauben 873/tcp

Sobald wir die Firewall konfiguriert haben, können wir fortfahren und ein Modul definieren. Hier ist unsere Konfiguration:

[linuxconfig] path =/mnt/data/rsync comment = "Beispiel eines RSYNC -Daemon -Moduls" LEAD = false exclued = *.txt

Wir haben unser Modul "Linuxconfig" bezeichnet und das assoziiert das /mnt/data/rsync Verzeichnis dazu. Wir haben auch einen Kommentar abgegeben. Wir setzen das Modul sowohl lesbar als auch beschreibbar, indem wir die festlegen schreibgeschützt Parameter zu falsch und über die ausschließen Parameter haben wir ein Muster bereitgestellt, um alle Dateien mit dem auszuschließen .txt Verlängerung.

Bevor wir unser Modul verwenden, müssen wir den Daemon starten. Wir können RSYNC als Daemon ausführen, indem wir das Programm mit dem anrufen --Dämon Option, oder wir können einfach Systemd verwenden, um die Aufgabe zu erfüllen (unter der Haube führt der SystemD -Dienst denselben Befehl aus). Unter Debian -basierter Verteilungen heißt der Dienst rsync; Auf Fedora und Archlinux heißt es rsyncd:

$ sudo systemctl starten rsync

Um RSYNC automatisch beim BOOT zu starten, müssen wir das SystemCTL verwenden ermöglichen Unterbefehl:

$ sudo systemctl aktivieren rsync

Wir setzen die /mnt/data/rsync Verzeichnis im Besitz der von der niemand Benutzer und der Nogroup Gruppe (es ist eine Debian -Maschine). Hier ist der Inhalt:

$ ls/mnt/data/rsync csv1.CSV Text1.txt text2.txt 

Wie wir sehen können, enthält das Verzeichnis zwei .txt Dateien und eine .CSV. Wenn wir das Modul als Quelle in der Übertragung verwenden, nur das „CSV1.Die CSV -Datei wird enthalten:

$ rsync -av rsync: // 192.168.0.39/linuxconfig/ . Empfangen inkrementaler Dateiliste ./ csv1.CSV 

Der Ausschluss wirksam auch, wenn wir das Modul als Ziel verwenden. Sagen wir, wir erstellen das „CSV2.CSV “und„ Text3.txt ”Dateien in unserem aktuellen Arbeitsverzeichnis:

$ touch csv2.CSV Text3.txt


Wenn wir jetzt RSYNC ausführen und unser aktuelles Arbeitsverzeichnis als Quelle und das Modul als Ziel verwenden, können wir sehen, wie sich der Daemon ablehnt, den „Text3) zu empfangen.TXT ”-Datei, da sie mit dem angegebenen Ausschlussmuster übereinstimmt:

$ rsync -av . rsync: // 192.168.0.39/LinuxConfig Senden inkrementaler Dateiliste Fehler: Daemon hat sich geweigert, Datei zu empfangen "text3.txt" ./ csv2.CSV 

Beachten Sie, dass wir in den obigen Befehlen eine verwendet haben RSYNC URL So geben Sie die IP -Adresse des Servers und den Namen des Moduls an, das wir verwenden möchten. Wie können wir eine Liste aller verfügbaren Module auf einer Maschine erhalten?? Es ist sehr einfach, wir führen einfach den Befehl rsync aus, der nur die Serveradresse in der URL angibt:

$ rsync rsync: // 192.168.0.39 LinuxConfig "Beispiel eines RSYNC -Daemon -Moduls" 

Alle verfügbaren Module und die zugehörigen Kommentare werden angezeigt. In diesem Fall nur das "Linuxconfig".

Abschluss

In diesem Artikel haben wir gesehen, wie man den RSYNC -Daemon auf einigen der am häufigsten verwendeten Linux -Verteilungen installiert und konfiguriert. Wir haben gesehen und gelernt, wie man einige der verfügbaren globalen und modulspezifischen Parameter verwendet, um das Verhalten des RSYNCD-Daemons zu ändern. Schließlich haben wir ein Beispiel für eine Modulkonfiguration gesehen. Für ein ausführlicheres Wissen über rsyncd, Wir können immer das offizielle Handbuch konsultieren. Es geht nur darum: Laufen:

$ MAN RSYNCD.Conf

Verwandte Linux -Tutorials:

  • Dinge zu installieren auf Ubuntu 20.04
  • Eine Einführung in Linux -Automatisierung, Tools und Techniken
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
  • Dinge zu installieren auf Ubuntu 22.04
  • Linux -Konfigurationsdateien: Top 30 am wichtigsten
  • Mastering -Bash -Skriptschleifen beherrschen
  • Linux -Download
  • Mint 20: Besser als Ubuntu und Microsoft Windows?
  • Wie man Kali Linux und Windows 10 Dual -Boot -Start hat
  • Ubuntu 20.04 Tricks und Dinge, die Sie vielleicht nicht wissen