• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

gzip über cron -> defekte gz-Datei

matze0611

Newbie
Hallo,
ich habe ein PHP-Skript das mir einen Dump meiner SQL-Datenbank macht. Nun wollte ich daß ich über den cron den Backup einmal täglich laufen lasse und mir die Datei per email zukommen lasse.

Das Skript sieht folgendermaßen aus:
Code:
/usr/bin/php /home/htdocs/web3/files/dbsave.php >> /dev/null 2>&1
sleep 10
/bin/tar cvf /home/htdocs/web3/files/mysql.tar usr_web3_1 >> /dev/null 2>&1
sleep 10
/usr/bin/gzip -v9 /home/htdocs/web3/files/mysql.tar >> /dev/null 2>&1
sleep 10
/usr/bin/mail -s Backup -a /home/htdocs/web3/files/mysql.tar.gz adresse@online.de,nocheine@online.de < /home/htdocs/web3/files/empty >> /dev/null 2>&1
sleep 15
/bin/rm /home/htdocs/web3/files/mysql.tar.gz >> /dev/null 2>&1

Nun gut, starte ich nun dieses Skript manuell, funktioniert alles prima. Lasse ich es aber über den cron starten, bekomme ich eine kleinere .gz-Datei, und wenn ich sie öffnen will heißt es bloß "Ungültiger Archivordner".

Meine crontab:
Code:
SHELL=/bin/sh
PATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin
MAILTO=root
#
# check scripts in cron.hourly, cron.daily, cron.weekly, and cron.monthly
#
-*/15 * * * *   root  test -x /usr/lib/cron/run-crons && /usr/lib/cron/run-crons >/dev/null 2>&1
59 *  * * *     root  rm -f /var/spool/cron/lastrun/cron.hourly
14 4  * * *     root  rm -f /var/spool/cron/lastrun/cron.daily
29 4  * * 6     root  rm -f /var/spool/cron/lastrun/cron.weekly
44 4  1 * *     root  rm -f /var/spool/cron/lastrun/cron.monthly
37 13 * * *     root  /home/htdocs/web3/files/mein_backup

Was mache ich denn falsch?

Gruß
Matthias
 

regexer

Advanced Hacker
matze0611 schrieb:
Was mache ich denn falsch?
So spontan habe ich auch keine Idee. Aber ich würde an deiner Stelle eine saubere log-Datei erzeugen. Anstatt in /dev/null zu leiten, würde ich zumindest zu testzwecken eine Logfile anlegen. Vielleicht wird ja dann auch ein Fehler ausgegeben ...
 

oc2pus

Ultimate Guru
vielleicht solltest du den sleep Befehl auch mit vollem Pfad angeben ... evtl wird kein sleep ausgeführt via cron, weil der cron es nicht findet und dann werden alle Befehle ziemlich "schnell" abgearbeitet ...

nur eine Idee :)
 
OP
M

matze0611

Newbie
Hallo,
als ich deinen Vorschlag heute mittag gesehen hatte dachte ich: Na klar!
Jetzt habe ich das gleichmal ausprobiert und alle sleep's mit
Code:
/bin/sleep
ersetzt, hat aber leider nix gebracht.

Jetzt habe ich mal eine log-datei erstellen lassen, in der folgendes steht:
/bin/tar: usr_web3_1: Cannot stat: No such file or directory
/bin/tar: Error exit delayed from previous errors
/home/htdocs/web3/files/mysql.tar: 99.7% -- replaced with /home/htdocs/web3/files/mysql.tar.gz

Was nun?

Gruß
Matthias
 
OP
M

matze0611

Newbie
Ok, nun hab ich es:

Man ändere folgende Zeile:
Code:
/bin/tar -cvf /home/htdocs/web3/files/mysql.tar usr_web3_1 >> /dev/null 2>&1
folgendermaßen:
Code:
/bin/tar -cvf /home/htdocs/web3/files/mysql.tar /home/htdocs/web3/files/usr_web3_1 >> /dev/null 2>&1
und schon geht es. :roll:

Vielen Dank an alle :)

Gruß
Matthias
 
Oben