Probleme mit pg_dump

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Spreech
Beiträge: 202
Registriert: 30.10.2006 22:52:09
Kontaktdaten:

Probleme mit pg_dump

Beitrag von Spreech » 04.05.2007 20:17:59

Hi Leute,

bei mir läuft u.a. postgreSQl aufm Server.

Habe mich da nun mal ein wenig eingearbeitet und habe entdeckt, dass ich via pg_dump die Datenbanken backuppen kann.

Via folgendem Befehl wollte ich nun eine pg DB backuppen:

Code: Alles auswählen

pg_dump -U username -W 123456 testdb > testdb.sql
Laut man pg_dump sollte dies auch so stimmen.

Jedoch erhalte ich folgende Fehlermeldung:

Code: Alles auswählen

pg_dump: zu viele Kommandozeilenargumente (das erste ist »testdb«)
Versuchen Sie »pg_dump --help« für weitere Informationen.
Wenn ich den Abschnitt

Code: Alles auswählen

-W 123456
weglasse und dann das PW von Hand eingebe, dann geht es ohne Fehlermeldung.

Da ich jedoch einen Cron basteln will, muss ich das Passwort ja übergeben, und wie ich nachlas geht dies auch via -W [PASSWORT].

Hat hier jmd. einen Tipp für mich was ich denn falsch mache??

Besten Dank im Voraus.

euer Spreech
Privat:
FSC Amilo M 3438
Debian Etch
2.6.18-5-686
KDE 3.5

Kleine Sammlung von eigenen Probleme:
linux.manuelschwab.de

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 06.05.2007 15:53:58

Nein, das hast du falsch gelesen. Mit -W erzwingst du nur auf jeden Fall einen Passwort-Prompt. Du kannst mit diesem Schalter aber nicht das Passwort übergeben.
Du kannst das Problem auf mehrere Wege umschiffen. Wenn das ganze ein Cron-Job ist, der von root angestossen wird, dann kannst du su benutzen. Der System-User postgres hat normal kein Passwort:

Code: Alles auswählen

su postgres -c pg_dump ...
Eine andere Möglichkeit wären, eine Datei namens .pgpass in deinem Home anzulegen. PostgreSQL benutzt diese, um das Passwort auszulesen. Das Format wird HIER beschrieben. Eventuell ist es aber im Cron-Job noch nötig, die Umgebungsvariable PGPASSFILE zu setzen. Aber das musst du mal ausprobieren. Die Rechte auf der Datei musst du auf 600 setzen, da sie sonst ignoriert wird.

Antworten