# Cronjob MySQL Dump



## Malaxo (2. März 2013)

Hey Leute

Ich hab da etwas für einen Cronjob gefunden:

```
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


----------



## erik s. (3. März 2013)

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?


----------



## Malaxo (3. März 2013)

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?


----------



## para_noid (4. März 2013)

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

```
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:


```
PATH=/usr/local/bin:/usr/bin:/sbin:/bin
```


----------



## Malaxo (4. März 2013)

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?

```
/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
```


----------



## Malaxo (5. März 2013)

jetzt bekomme ich folgende Meldung:
exim abandoned: unknown, malformed, or incomplete option -s

Wie löse ich nun das? Google hilft da nicht wirklich...


----------



## erik s. (5. März 2013)

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.


----------



## Malaxo (5. März 2013)

Achso und bei "mutt" war das wohl anders bzw. wenn ich das jetzt richtig verstehe ist "mutt" ein textbase mailclient?

Wie könnte ich jetzt mein Cronjob erweitern um das Mail zu senden? Könnte mir da einer helfen - ich blick da immer noch nicht so ganz durch. Kann ich auch alles in Sendmail ganz eifach senden ohne viel trara rund herum. Ich brauch nur das File hehehe

-> http://support.hostpoint.ch/index.php?page=ArticleDetailPage&navigation=7&category=29&article=42


----------



## Malaxo (12. März 2013)

Ich hab es fast... kann mir da noch jemand bitte helfen?

Ich sende das Mail nun so:

```
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.


----------

