Crontab führt Datei nicht richtig aus [gelöst]

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
Bambie
Beiträge: 12
Registriert: 20.10.2007 11:36:04

Crontab führt Datei nicht richtig aus [gelöst]

Beitrag von Bambie » 03.01.2008 01:03:49

Hallo zusammen,
ich habe so langsam das Gefühl ich bin zu blöd einen Crontab zu erstellen.
Also:
System: Vserver mit Debian 3.1
Crontab wird über crontab -e eingefügt:

Code: Alles auswählen

# m h  dom mon dow   command
55 * * * * /home/backup/bin/all.sh
Das Script wird als root ausgeführt. Der Witz: Führe ich das ganze über die normale Konsole wird es normal ohne Fehler abgearbeitet. Gucke ich im Syslog, sehe ich, das die Datei auch ausgeführt wird:

Code: Alles auswählen

Jan  3 00:55:01 ********** /USR/SBIN/CRON[17940]: (root) CMD (/home/backup/bin/all.sh)
Nur wo ist jetzt mein Fehler? Ich werde hier noch bekloppt :(
MFG Bambie
Zuletzt geändert von Bambie am 03.01.2008 18:42:41, insgesamt 1-mal geändert.

JPT
Beiträge: 96
Registriert: 09.03.2006 17:46:20
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von JPT » 03.01.2008 01:12:27

Steht im Crontab nicht normalerweise nach den 5 Zeitangaben noch der username ?

Beispiel:

Code: Alles auswählen

55 * * * * root /home/backup/bin/all.sh

fuzzy
Beiträge: 1021
Registriert: 04.10.2003 12:15:52

Beitrag von fuzzy » 03.01.2008 06:17:36

crontab -e wird ja von dem jeweiligen user ausgeführt, der "user"-Eintrag muss in dem Falle nicht in die Zeile hinein.
...anders sieht es in /etc/crontab aus.

@Bambie

Code: Alles auswählen

cat /home/backup/bin/all.sh
Ich glaube dann können wir Dir besser helfen. :wink:
Die Pfade innerhalb des Scriptes sind "absolut"?

Gruß fuzzy

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 03.01.2008 08:33:57

Gibts denn ne Mail an den entsprechenden User mit Fehlermeldungen/Ausgaben des Skriptes?

Bambie
Beiträge: 12
Registriert: 20.10.2007 11:36:04

Beitrag von Bambie » 03.01.2008 13:47:45

Also erstmal das Script (Namen und PW verändert):

Code: Alles auswählen

/home/backup/bin/sql_meinwunderschoenesbackup.sh
/home/backup/bin/sql_coppermine.sh
/home/backup/bin/teamspeak.sh
Beispiel aus sql_coppermine.sh

Code: Alles auswählen

mysqluser=benutzer
mysqlpassword=passwort

now=`date "+%x_%R"`
filename="$now"_coppermine.sql

mysqldump -u$mysqluser -p$mysqlpassword coppermine > /home/backup/temp/"$filename"
Eigentlich sollte das Script die Dateien erstellen, hochladen und wieder löschen, das habe ich aber erstmal rausgenommen, um zu testen, ob er die Dateien erstellt
Mail gibts nicht, da ich kein Mailsystem installiert habe (Konnte mich mit dem Domain nicht entscheiden und deshalb erstmal keinen genommen)

MFG Bambie

Benutzeravatar
GoKi
Beiträge: 2068
Registriert: 04.07.2003 23:08:56
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von GoKi » 03.01.2008 14:03:14

Versuch mal (wie weiter oben schon vorgeschlagen) den kompletten Pfad zu mysqldump, also /usr/bin/mysqldump
MfG GoKi
:wq

Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

Beitrag von peschmae » 03.01.2008 14:17:36

Imo sollte man besser PATH setzen, sonst wird man ja wahnsinnig wenn man mehr als 3 Programme ausführt ;-)

Code: Alles auswählen

PATH=/bin:/usr/sbin:/usr/local/sbin
an den scriptanfang...

MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy

Bambie
Beiträge: 12
Registriert: 20.10.2007 11:36:04

Beitrag von Bambie » 03.01.2008 14:21:52

Gerade ausprobiert, kein Erfolg, hab im Syslog nochmal nachgeguckt, die Datei wurde angeblich ausgeführt, so langsam hab werde ich verrückt :(

Edit: Das von peschmae ausprobiet, leider auch keinen Erfolg :(

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 03.01.2008 15:40:58

Ändere den crontab-Eintrag mal auf

Code: Alles auswählen

55 * * * * /home/backup/bin/all.sh > /tmp/backup.log 2>&1
Falls Fehlermeldungen auftreten, siehst du die dann in /tmp/backup.log.

Bambie
Beiträge: 12
Registriert: 20.10.2007 11:36:04

Beitrag von Bambie » 03.01.2008 16:01:00

Das hat geholfen, Danke, aber eine kleine Frage hatte ich noch, ich habe das vorher auch ausprobiert, aber ohne , kann mir jemand kurz erklären, was das bedeutet?

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 03.01.2008 16:23:56

Das leitet den Filedescriptor 2, der für STDERR steht und auf dem alle Fehlermeldungen ausgegeben werden, auf den Filedescriptor 1 um, der STDOUT darstellt.
Dadurch enthält das Logfile sowohl normale Ausgaben auf STDOUT, als auch Fehlermeldungen, die via STDERR ausgegeben werden.

Antworten