Wie man Daten zwischen 2 Servern automatisch synchronisiert

In diesem Artikel werde ich erklären, wie 2 Linux-Server eingerichtet werden, um Daten automatisch zwischen einem bestimmten Verzeichnis auf jedem Server zu synchronisieren. Dazu verwenden wir rsync, ssh key authentication und einen Cron Job. Rufen wir die beiden Server 'SOURCESERVER' und 'DESTSERVER' forSOURCESERVER = Quellserver an (der Server, von dem aus wir die Daten hochladen) DESTSERVER = Zielserver (Der Server, den wir verbinden, um die Daten zu empfangen) Teil 1 - Einrichten der SSH-Schlüsselauthentifizierung Zuerst müssen wir sicherstellen, dass der DESTSERVER die Schlüsselauthentifizierung aktivieren kann. Suchen Sie nach Ihrer sshd-Konfigurationsdatei (normalerweise '/ etc / ssh / sshd_config') und aktivieren Sie die folgenden Optionen, falls sie noch nicht festgelegt sind.RSAAuthentication yes PubkeyAuthentifizierung ja AuthorizedKeysFile .ssh / authorized_keysWenn Sie die Datei bearbeiten, müssen Sie sshd danach neu starten. # /etc/init.d/sshd Neustart Als nächstes werden wir auf dem SOURCESERVER das öffentliche / private Schlüsselpaar erstellen, das für die Authentifizierung mit dem folgenden Befehl verwendet werden soll. # ssh-keygen -t rsa * Hinweis: Geben Sie keine Passphrase ein, drücken Sie einfach die Eingabetaste, wenn Sie dazu aufgefordert werden. Dies sollte 2 Dateien, eine öffentliche Schlüsseldatei und eine private Schlüsseldatei erstellen. Die Datei mit dem öffentlichen Schlüssel (normalerweise [homedir] /. Ssh / id_rsa.pub) werden wir in den DESTSERVER hochladen. Die private Schlüsseldatei (normalerweise [homedir] /. Ssh / id_rsa) werden wir auf dem SOURCESERVER behalten. * Achten Sie darauf, diesen privaten Schlüssel sicher zu verwahren. Damit kann sich jeder mit dem DESTSERVER verbinden, der den öffentlichen Schlüssel enthält. Nun werden wir den öffentlichen Schlüssel, den wir erstellt haben, dem DESTSERVER hinzufügen. Wählen Sie das Benutzerkonto aus, mit dem Sie sich bei DESTSERVER verbinden möchten. Wir nennen diesen Benutzer "destuser". Erstellen Sie im Ausgangsverzeichnis dieses Kontos ein Unterverzeichnis ".ssh", und erstellen Sie in diesem Verzeichnis eine neue Textdatei mit dem Namen "authorized_keys". Wenn es bereits vorhanden ist, verwenden Sie die vorhandene Datei. Öffnen Sie die Datei 'authorized_keys' und fügen Sie den Inhalt des öffentlichen Schlüssels ein, den Sie im vorherigen Schritt erstellt haben (id_rsa.pub). Es sollte etwas wie die folgenden aussehen -Sh-rsa sourceuser @ SOURCESERVERSave die Datei und ändern Sie die Berechtigungen auf 600 für die Datei und 700 für die '.ssh' Verzeichnis.Nun zu testen, dass die Schlüssel funktionieren. Versuchen Sie, sich vom SOURCESERVER normal mit ssh zum DESTSERVER anzumelden. # Ssh destuser @ DESTSERVER Wenn alles funktioniert, sollten Sie nicht zur Eingabe eines Passworts aufgefordert werden, sondern direkt mit einer Shell auf dem DESTSERVER. Für weitere Anleitungen empfehle ich den Besuch von www.howtomonster.com Teil 2 - Erstellen der rsync scriptNow für das rsync-Skript. Ich benutze ein einfaches Skript wie das folgende ----------------------------------------- - #! / bin / bash SOURCEPATH = '/ Quelle / Verzeichnis' DESTPATH ​​= '/ Ziel' DESTHOST = '123.123.123.123' DESTUSER = 'Zerstörer' LOGFILE = 'rsync.log' echo $ 'nn' LOGFILE rsync -av --rsh = ssh $ SOURCEPATH $ DESTUSER @ $ DESTHOST: $ DESTPATH ​​21 $ LOGFILE echo "Abgeschlossen um:` / bin / date` "$ LOGFILE ------------------------------------ ------- Kopieren Sie diese Datei in das Home-Verzeichnis des sourceuser auf dem SOURCESERVER und modifiziere die ersten 4 Variablen in der Datei. SOURCEPATH (Quellpfad, der synchronisiert werden soll) DESTPATH ​​(Zielpfad, der synchronisiert werden soll) DESTHOST (Ziel-IP-Adresse oder Hostname) DESTUSER (Benutzer auf dem Zielserver) Speichern Sie es als etwas wie 'rsync.sh' Legen Sie die Berechtigungen für die Datei auf 700 fest. # chmod 700 rsync.sh Jetzt sollten Sie in der Lage sein, das Skript auszuführen, es mit dem DESTSERVER verbinden zu lassen und die Dateien ohne Ihre Interaktion zu übertragen. Das Skript sendet alle Ausgaben an die Datei 'rsync.log', die im Skript angegeben ist. Teil 3 - Einrichten des Cron-JobsWenn alles bisher funktioniert hat, müssen Sie nur noch einen Cron-Job einrichten, um das Skript automatisch in einem vordefinierten Intervall auszuführen .Wenn derselbe sureUser den Befehl 'crontab' verwendet, um einen neuen Cron-Job zu erstellen. # Crontab -eDadurch wird ein Editor geöffnet, in dem Sie den Job planen können. Geben Sie Folgendes ein, um das Skript einmal pro Stunde ausführen zu lassen --------------------------------------- ---- # Führen Sie mein rsync-Skript einmal pro Stunde aus 0 * * * * /pfad/zu/rsync.sh ------------------------------------------- Ihre 2 Server sollten jetzt synchronisiert werden das ausgewählte Verzeichnis einmal pro Stunde. Hoffe, das hat geholfen, lassen Sie mich wissen, wenn Sie irgendwelche Fragen haben. Travis ist ein How to und Tutorial Schreiber für Howto [http://www.howtomonster.com] Monster.Für weitere Informationen und Qualität Computer-Technologie, wie Tos, Guides und Tutorial besuchen Sie www.howtomonster.com [http: // www. howtomonster.com]