PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : mysqldump via cron-job - leerer dump?



K_Ozz
17.01.08, 09:45
Hallo!

Ich habe hier ein kleines Script, dass unter anderem auch Dumps von einer MySQL-Datenbank anlegen soll.
Wenn ich das Script manuell in einer Shell starte funktioniert es auch ohne Probleme, wenn ich das aber per Cron-Job machen lasse bekomme ich einen leeren Dump als Resultat.
Alles andere im Script läuft tadellos durch.

Hat Jemand ne Idee was da nicht stimmen könnte?



#!/bin/bash
DBUSER=foobar
DBNAME=foobar
DBPASS=
BASEDIR=/foo/bar
DATE=$(date +"%d.%m.%Y")
...
cd $BASEDIR/yavp/dbdump/
mysqldump -u $DBUSER $DBNAME -r sqldump.sql
...


Vielen Dank schon mal.

zyrusthc
17.01.08, 10:01
Wie siehts den mit $DBPASS aus , den die taucht in deiner mysqldump Zeile nicht auf!

Greeez Oli

marce
17.01.08, 10:13
Die Datei selbst wird aber erstellt?

zyrusthc
17.01.08, 10:16
Desweiteren würde ich auch den kompletten Pfad also /pfad/sqldump.sql angeben, statt mit cd in diesem Script zu arbeiten.

Greeez Oli

K_Ozz
17.01.08, 10:51
Danke schonmal!



Wie siehts den mit $DBPASS aus , den die taucht in deiner mysqldump Zeile nicht auf!


Derzeit ist das Passwort (zum Testen) einfach leer bzw nicht gesetzt, darum taucht es nicht auf. Mit Passwort ergab sich das selbe Verhalten.



Die Datei selbst wird aber erstellt?

Ja, wird sie. Allerdings völlig leer (Größe 0 Byte).



Desweiteren würde ich auch den kompletten Pfad also /pfad/sqldump.sql angeben, statt mit cd in diesem Script zu arbeiten.

Macht leider keinen Unterschied.

Merkwürdig ist eben, dass es problemlos funktioniert wenn ich es händisch ausführe und auch alle anderen Schritte im Script vom Cron-Job korrekt ausgeführt werden.

Ich starte den Cron per crontab wie folgt:


0 21 * * * root /foo/bar/makesnapshot.sh

marce
17.01.08, 10:53
probier mal, den kompletten Pfad zu mysqldump anzugeben - wobei mich das wündern würde, weil es ja an sich zu laufen scheint (Datei wird ja erstellt...)

BedriddenTech
17.01.08, 15:57
Wird das Abbild nicht normalerweise nach stdout geschrieben? Also sollte es nicht "mysqldump -u ... ... > /path/to/dumpfile" lauten?

marce
18.01.08, 07:13
normalerweise ja, aber da gibt's eben auch die Option

-r, --result-file=name
Direct output to a given file. This option should be used
in MSDOS, because it prevents new line '\n' from being
converted to '\r\n' (carriage return + line feed).


... wobei ich die noch nie verwendet habe - also evtl. mal einfach die "traditionelle Variante" probieren...