Einzeilige Sicherung, Komprimierung, SCP-Datenbankdatei

Einzeilige Sicherung, Komprimierung, SCP-Datenbankdatei

Ich unterstütze ein Unternehmen mit einer remote gehosteten Website. Sie verwenden PostgreSQL-Datenbanken.

Ich kann auf dem Remote-Server keine Skripte schreiben und möchte auch keine Sicherungsdateien auf dem Remote-Server speichern, aber ich kann Cron-Jobs ausführen und habe Zugriff auf den öffentlichen SSH-Schlüssel des Remote-Servers. Ich habe einen lokalen Linux-Host so eingerichtet, dass er den privaten Schlüssel des Remote-Hosts zur Authentifizierung akzeptiert.

Ich muss ein einzeiliges Skript erstellen, um die Sicherungsdatei synchron zu sichern, zu komprimieren und per SCP auf meine lokale Linux-Box zu übertragen.

Wenn meine lokale Linux-Box per SSH über mylinuxbox.foo.comPort 122 erreichbar wäre und der Name meiner Datenbank wäre mydatabase, wie würde dieser einzeilige Cronjob-Befehl aussehen?

Antwort1

Vorausgesetzt, Sie verwenden eine Ident-Authentifizierung (oder eine .pgpass-Datei) für die Datenbank, würde ich wahrscheinlich etwa Folgendes tun:

pg_dump -Udbuser -h127.0.0.1 mydatabase |gzip -c > mydatabase.backup.gz; scp -P 122 mydatabase.backup.gz [email protected]:; rm -f mydatabase.backup.gz

Bearbeiten, um eine weitere Option hinzuzufügen …

Wenn es wirklich wichtig ist, die Sicherungsdatei nicht zwischenzuspeichern, können Sie das Obige so ändern, dass es eher wie folgt aussieht:

pg_dump -Udbuser -h127.0.0.1 mydatabase |gzip -c | ssh -p 122 [email protected] "cat >mydatabase.backup.gz"

verwandte Informationen