2016-03-21 22 views
2

Unser System ist auf AWS. Debian EC2-Instanz. RDS postgres Instanz. Wenn ich mich in den "admin" Account einloggen, funktioniert pd_dump.Kann pg_dump nicht von Cron-Job ausführen

dann ich crontab -e, um ein Test-Backup-Ereignis zu erstellen.

*/2 * * * * /home/admin/storage/db_backup.sh 

und tatsächlich, es läuft alle 2 Minuten.

in db_backup.sh ich habe:

pg_dump > dbbackup.txt 

das Skript und der Ordner ich leite gehören zu "admin".

Die Datei dbbackup.txt wird immer mit einer Größe von 0 generiert.

warum ist das?

+0

Vielleicht ist pg_dump nicht im PATH? - >> verwende einen absoluten Pfadnamen oder setze den PATH in deinem Cron-Skript. – joop

+0

Und meinst du p ** g ** _ dump oder p ** d ** _ dump? Du verwendest beide, aber postgres Befehl ist ** pg_dump **. – antiduh

+0

Ich betreibe absoluten Pfad. pg_dump wird ausgeführt. es macht nur Fehler, die die Ausgabe 0 machen. – JasonGenX

Antwort

0

wir hier nur raten kann, aber ich habe einen Vorschlag. Versuchen Sie, die gesamte Ausgabe (einschließlich stderr) in die Datei umzuleiten, um zu sehen, ob sie Ihnen Informationen liefert.

in Ihrem /home/admin/storage/db_backup.sh hinzufügen 2>&1:

pg_dump > dbbackup.txt 2>&1 

Sie auch diese verwenden können und Ihre Cron-Linie bei umleiten Ihre .sh Datei hat einige Probleme:

*/2 * * * * /home/admin/storage/db_backup.sh >> /home/admin/cron_log.txt 2>&1 

EDIT: gerade bemerkt, dass Sie eine Post antworte schon. Kaufen Sie, wenn Sie Zeit haben, versuchen Sie, die Exporte zu entfernen und sehen Sie, ob Sie Fehler in den Logs bekommen können, die Ihnen helfen könnten.

+0

@ RM1970 Könnten Sie, bitte, kommentieren, wenn dies wirklich helfen könnte, Ihr Problem zu lösen? –

1

Ich fand heraus, was der Täter war. Da ich im Kontext von Admin aber in Cron ausgeführt wurde, wurden meine Umgebungszeichenfolgen nicht festgelegt.

Einstellung dieser an der Spitze meiner db_backup.sh dieses Problem gelöst:

export PGPASSWORD=<value> 
export PGHOST=<value> 
export PGDATABASE=<value> 
export PGUSER=<value>