Cronjob MySQL Dump

Malaxo

Erfahrenes Mitglied
Hey Leute

Ich hab da etwas für einen Cronjob gefunden:
Code:
mysqldump -h XXX -u XXX -p XXX Database > /home/XXX/tmp/backupfile.sql
zip -q /home/XXX/tmp/backupfile.zip  backupfile.sql
mutt -s "Betreff" -a /home/XXX/tmp/backupfile.zip meine.mail@mail.com
rm -f /home/XXX/tmp/backupfile.zip /home/XXX/tmp/backupfile.sql

XXX -> ersetze ich mit den Angaben. Jedoch funktioniert der 1. Befehl nicht, bzw. ich bekomme die Meldung
"mysqldump: not found
zip: not found
mutt: not found"

Ich habe in den Ordner /tmp/ einmal ein "backupfile.zip" hochgeladen, das wurde durch das Script gelöscht.

Kenne mich damit überhaupt nicht aus. Wie kann ich besser testen? Die Meldung bringt mir auch nichts.


Gruss
 
Eventuell ist die PATH-Variable des betroffenen Benutzers leer oder unvollständig. Probier mal, die Befehle mit den kompletten Pfadangaben auszuführen.
Ansonsten: Sicher, dass die Pakete installiert sind? Welche Distri nutzt du?
 
Hey

Ich benutz den Cronjob für meinen Provider, die Pakete sollten installiert sein.
Die Verbindung ist die selbe, welche ich auch in PHP nutze. Wenn ich im Ordner /tmp/ ein Zip / Sql habe "backufile" und das hier ausführe: rm -f /home/XXX/tmp/backupfile.zip /home/XXX/tmp/backupfile.sql

klappt es. Das heisst der Pfad stimmt auch. Kann ich irgendwie mit Debugmeldungen oder so etwas mehr infos raus bekommen um heruaszufinden wo genau es hängt?
 
cron liest die Variable nicht aus /etc/environment wie es die shell tut, sondern verwendet PATH="/usr/bin:/bin".
Wenn deine ersten 3 Programme nicht dort liegen, kann nicht drauf zugegriffen werden.

Du kannst dir mit
Code:
which Kommandoname
die Pfade der Kommandos ausgeben lassen.

Falls die ausgegebenen Pfade nicht den beiden o.g. entsprechen, kannst du die $PATH-Variable entweder im aufgerufenem Script oder auch direkt in der contab-Datei überschreiben:

Code:
PATH=/usr/local/bin:/usr/bin:/sbin:/bin
 
Danke für eure Hinweise... ich habe jetzt folgendes gefunden von meinem Provider:
http://support.hostpoint.ch/index.php?page=ArticleDetailPage&navigation=7&category=29&article=42
Demnach müsste der Code nun so aussehen oder? Jetzt bin ich bei Zeile 2 mit gzip und bei Sendmail Zeile 3 unsicher.
"rm" hat ja geklappt das kann ich so lassen oder?
Code:
/usr/local/bin/mysqldump -h XXX -u XXX -p XXX Database > /home/XXX/tmp/backupfile.sql
/usr/bin/gzip -q /home/XXX/tmp/backupfile.zip  backupfile.sql
/usr/sbin/sendmail -s "Betreff" -a /home/XXX/tmp/backupfile.zip meine.mail@mail.com
rm -f /home/XXX/tmp/backupfile.zip /home/XXX/tmp/backupfile.sql
 
jetzt bekomme ich folgende Meldung:
exim abandoned: unknown, malformed, or incomplete option -s

Wie löse ich nun das? Google hilft da nicht wirklich...
 
Der Befehl sendmail erwartet keinen Parameter mit der Bezeichnung "-s", den du für deinen Betreff verwendest. Sendmail ruft man in der Regel mit einer Datei auf, die den Quelltext der Mail darstellt und alle nötigen Informationen vereint, wie Betreff, Zeichenkodierung, Reply-To usw.
 
Ich hab es fast... kann mir da noch jemand bitte helfen?

Ich sende das Mail nun so:
Code:
uuencode /home/user/tmp/backupfile-$NOWDATE.sql backupfile-$NOWDATE.sql | mail -s "OT Backup" e-mailadresse

Das Mail kommt mit Anhang aber der Anhang heisst "Mail-Anhang" ohne Filetyp. Das kriege ich nun schon die ganze Zeit nicht hin. Was ist falsch? ich möchte dass das File "backupfile-xxxxx.sql" heisst.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück