Maverick143 hat eine Antwort geliefert, aber diese Frage gehört nicht wirklich zu StackOverflow, da sie wenig mit Programmierung zu tun hat. SuperUser.com wäre relevanter gewesen.
Führen Sie einen rsync durch, um sicherzustellen, dass das Kennwort für Ihr Konto auf dem Remoteserver abgefragt wird, und kopieren Sie die Dateien erfolgreich auf den Remoteserver.
Im folgenden Beispiel wird der lokale Ordner /home/test
mit dem Remote-Ordner /backup/test(auf dem 192.168.200.10Server) synchronisiert .
Hier sollten Sie nach dem Kennwort Ihres Kontos auf dem Remote-Server gefragt werden.
Richten sshSie es jetzt so ein, dass bei der Ausführung von ssh kein Kennwort abgefragt wird. Verwenden Sie ssh-keygenauf lokalen Server öffentliche und private Schlüssel zu generieren.
$ ssh-keygen
Passphrase eingeben (leer für keine Passphrase):
Geben Sie dieselbe Passphrase erneut ein: Hinweis: Wenn Sie aufgefordert werden, die Passphrase einzugeben, drücken Sie einfach die Eingabetaste und geben Sie hier kein Passwort ein.
3. ssh-copy-id kopiert den öffentlichen Schlüssel auf den Remote-Host
Verwenden Sie diese Option ssh-copy-id, um den öffentlichen Schlüssel auf den Remote-Host zu kopieren.
Hinweis: Im obigen Abschnitt wird das Kennwort für das Benutzerkonto auf dem Remote-Host abgefragt und der öffentliche Schlüssel automatisch an den entsprechenden Speicherort kopiert. Wenn die ssh-copy-id für Sie nicht funktioniert, verwenden Sie die zuvor beschriebene Methode, um die Anmeldung ohne ssh-Passwort einzurichten.
4. Führen Sie rsync über ssh ohne Passwort durch
Jetzt sollten Sie in der Lage sein, ohne Eingabe des Kennworts zum Remote-Host zu ssh.
Wenn Sie einen anderen Benutzer verwenden müssen, können Sie dies tun, wenn Sie die ssh-copy-id ausführen: ssh-copy-id -i ~ / .ssh / id_rsa.pub [email protected]
Finni McFinger
1
Generieren Sie den öffentlichen Schlüssel in ServerA
$ ssh-keygen
$ Enter passphrase (empty for no passphrase):
$ Enter same passphrase again:
Der öffentliche Schlüssel wird generiert und in gespeichert
~/.ssh/id_rsa.pub
Kopieren Sie den öffentlichen Schlüssel auf den Remote-Host
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.100
Oder
Öffnen Sie id_rsa.pub und kopieren Sie den Inhalt
Melden Sie sich mit demselben Benutzer im Befehl rsync bei ServerB an
Hängen Sie in ServerB den Inhalt an an ~/.ssh/authorized_keys. Erstellen Sie die Datei, falls nicht vorhanden. Stellen Sie sicher, dass der Dateimodus 700 ist.
Alle diese Rsync-Vorschläge schlagen mit der neuesten Version im August 2017 unter Ubuntu 16.04 LTS fehl. Kein einziger von ihnen arbeitet.
Sie alle teilen auch den Mangel, dass ein rsync-Daemon auf dem Dateiserver ausgeführt werden muss.
Diese Antwort funktioniert mit einem generischen Linux-NAS
HIER SIND SCHRITTE:
1) VERWENDEN Sie rsync wie unten gezeigt. (in ein Verzeichnis unter / mnt oder / media, das Sie erstellt haben, oder auf einem Gerät, das Sie mounten. Es spielt keine Rolle, welches) 2) ÜBERTRAGEN SIE Dateien MIT scp wie unten gezeigt. FileZilla wird auch funktionieren.
All dies (außer FileZilla) kann in cron ohne Passwort funktionieren.
Dieses Setup funktioniert sehr gut. Sie benötigen das Kennwort nur, wenn Sie die anfängliche ssh-copy-id einrichten, um die RSA-Anmeldungen ohne Kennwort einzurichten. Dann programmieren Sie es einmal in FileZilla. Danach werden Tag für Tag keine Passwortabfragen mehr ausgeführt. Das ist einfach. Und das Beste daran ist, dass Sie alle Vorteile des rsync-Programms nutzen können.
In dieser Antwort wird erläutert, wie Sie rsync selbst ohne Kennwort verwenden.
Außerdem muss auf keinem der beiden Systeme ein weiterer Daemon (rsync) installiert werden.
Wenn Sie es noch nicht getan haben, gehen Sie folgendermaßen vor:
Ich habe eine zweite Festplatte, daher verwende ich rsync, um das Startlaufwerk in ein Unterverzeichnis auf sdb1 zu kopieren (gemountet unter / mnt und von rsync ausgeschlossen).
Wenn Sie keine physische Festplatte haben und über genügend Speicherplatz verfügen, erstellen Sie einfach ein Unterverzeichnis unter / mnt (oder / media) und verwenden dieses.
Solange das Verzeichnis ausgeschlossen ist, spielt es keine Rolle, ob es sich auf einem separaten Laufwerk befindet oder nicht.
Hier ist das Backup-Skript:
cls
echo "EMPTYING TRASH"
rm ~/.local.share/Trash/*
echo "====================================================================="
echo " BEGINNING rsync from root to /mnt/full/sysbkp"
echo "====================================================================="
time sudo rsync -aAXv / --delete --ignore-errors --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /mnt/full/mysystem
Verwenden Sie nach dem rsync ein Skript:
Ich erstelle immer ein neues Verzeichnis auf dem Ziel-NAS-Server: / mnt / fullsys / mysystem, damit nur die relevanten Dateien übertragen werden.
Voila! Es dauert eine Weile, aber dann ist es geschafft.
Beide Skripte können in cron gut funktionieren.
Die Alternative besteht darin, FileZilla zu verwenden, um den NAS-Server manuell zu senden.
Da es zu Löschungen kommen kann, gehe ich immer make a new directory and enter itüber FileZilla auf die Ziel-1-TB-Festplatte, sodass nur die relevanten Dateien übertragen werden.
Erst wenn die Übertragung abgeschlossen ist, entferne ich die ältere Version.
Dies könnte zwar die Frage beantworten, aber es wäre eine bessere Antwort, wenn Sie eine Erklärung dafür liefern könnten .
DavidPostill
Auch die Syntax. Ich glaube, dies wird als Befehlssubstitution verwendet: rsync -aAVx $(ssh-copy-id -i /home/myusername/.ssh/id_rsa.pub)dann all das excludesund so weiter --delete. Ich habe es noch nicht zum Laufen gebracht, aber dies ist das nächste, das ich gesehen habe. Angeblich müssen Sie dies auch dann tun, wenn Sie dies bereits können sshund scpzum Zielserver, und der rsync-Dämon muss ausgeführt werden, da er kein normales SFTP-Format verwendet. Ich suche immer noch.
Antworten:
Unten ist der Artikel von The Geek Stuff :
quelle
Generieren Sie den öffentlichen Schlüssel in ServerA
Der öffentliche Schlüssel wird generiert und in gespeichert
Kopieren Sie den öffentlichen Schlüssel auf den Remote-Host
Oder
~/.ssh/authorized_keys
. Erstellen Sie die Datei, falls nicht vorhanden. Stellen Sie sicher, dass der Dateimodus 700 ist.quelle
Alle diese Rsync-Vorschläge schlagen mit der neuesten Version im August 2017 unter Ubuntu 16.04 LTS fehl. Kein einziger von ihnen arbeitet.
Sie alle teilen auch den Mangel, dass ein rsync-Daemon auf dem Dateiserver ausgeführt werden muss.
Diese Antwort funktioniert mit einem generischen Linux-NAS
HIER SIND SCHRITTE:
1) VERWENDEN Sie rsync wie unten gezeigt. (in ein Verzeichnis unter / mnt oder / media, das Sie erstellt haben, oder auf einem Gerät, das Sie mounten. Es spielt keine Rolle, welches) 2) ÜBERTRAGEN SIE Dateien MIT scp wie unten gezeigt. FileZilla wird auch funktionieren.
All dies (außer FileZilla) kann in cron ohne Passwort funktionieren.
Dieses Setup funktioniert sehr gut. Sie benötigen das Kennwort nur, wenn Sie die anfängliche ssh-copy-id einrichten, um die RSA-Anmeldungen ohne Kennwort einzurichten. Dann programmieren Sie es einmal in FileZilla. Danach werden Tag für Tag keine Passwortabfragen mehr ausgeführt. Das ist einfach. Und das Beste daran ist, dass Sie alle Vorteile des rsync-Programms nutzen können.
In dieser Antwort wird erläutert, wie Sie rsync selbst ohne Kennwort verwenden.
Außerdem muss auf keinem der beiden Systeme ein weiterer Daemon (rsync) installiert werden.
Wenn Sie es noch nicht getan haben, gehen Sie folgendermaßen vor:
und testen Sie es damit:
und vielleicht so etwas:
Ich habe eine zweite Festplatte, daher verwende ich rsync, um das Startlaufwerk in ein Unterverzeichnis auf sdb1 zu kopieren (gemountet unter / mnt und von rsync ausgeschlossen).
Wenn Sie keine physische Festplatte haben und über genügend Speicherplatz verfügen, erstellen Sie einfach ein Unterverzeichnis unter / mnt (oder / media) und verwenden dieses.
Solange das Verzeichnis ausgeschlossen ist, spielt es keine Rolle, ob es sich auf einem separaten Laufwerk befindet oder nicht.
Hier ist das Backup-Skript:
Verwenden Sie nach dem rsync ein Skript:
Voila! Es dauert eine Weile, aber dann ist es geschafft.
Beide Skripte können in cron gut funktionieren.
Die Alternative besteht darin, FileZilla zu verwenden, um den NAS-Server manuell zu senden.
Erst wenn die Übertragung abgeschlossen ist, entferne ich die ältere Version.
Voila. Erfolg.
quelle
Markieren Sie den Benutzer in der Adresse wäre besser
quelle
rsync -aAVx $(ssh-copy-id -i /home/myusername/.ssh/id_rsa.pub)
dann all dasexcludes
und so weiter--delete
. Ich habe es noch nicht zum Laufen gebracht, aber dies ist das nächste, das ich gesehen habe. Angeblich müssen Sie dies auch dann tun, wenn Sie dies bereits könnenssh
undscp
zum Zielserver, und der rsync-Dämon muss ausgeführt werden, da er kein normales SFTP-Format verwendet. Ich suche immer noch.