Ärger mit Crontab

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
urmele
Beiträge: 16
Registriert: 23.07.2003 23:20:17

Ärger mit Crontab

Beitrag von urmele » 08.02.2004 19:38:57

Hallo,

ich habe das Problem, dass ich einen Befehl wunderbar auf der Konsole ausführen kann. Sobald ich den jedoch in die Crontab hänge wird er zwar laut Logfile aufgerufen, ausgeführt wird er jedoch nicht.

Also habe ich mir ein kurzes Shellscript gebastelt, welches den Job aufruft:

#!/bin/bash
/usr/bin/hhadmin >>/var/log/hhadmin.log

Wieder das gleiche Problem. Script auf der Konsole ausgeführt >> alles bestens. Auch der Eintrag in /var/log/hhadmin.log wird geschrieben.

Das Script über die Crontab laufen zu lassen bringt mir ne Mail mit folgendem Inhalt:
/root/hhadmin.sh: line 2: 22531 Segmentation fault /usr/bin/hhadmin >>/var/log/hhadmin.log

Hat irgendjemand einen Tipp für mich. Ich bin hier fast am verzweifeln.

Stefan
:cry:

Benutzeravatar
zyta2k
Beiträge: 2446
Registriert: 14.03.2003 09:18:00
Kontaktdaten:

Beitrag von zyta2k » 09.02.2004 14:30:35

probiers mal mit nem Abstand:

>> /v
^^^

Und nochwas:

Ein

Code: Alles auswählen

exit 0
Ist am Ende eines Skripts immer gut !

Benutzeravatar
feltel
Webmaster
Beiträge: 10366
Registriert: 20.12.2001 13:08:23
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Leipzig, Germany
Kontaktdaten:

Beitrag von feltel » 09.02.2004 14:33:13

Fehlt da vielleicht ein Zeilenumbruch am Ende der Crontab-Datei? Auf diesen bösen Bug (oder Feature?) bin ich auch schonmal reingefallen. Steht irgendwo auch in der crontab-Manpage.

urmele
Beiträge: 16
Registriert: 23.07.2003 23:20:17

Beitrag von urmele » 09.02.2004 21:10:04

hallo,

vielen dank erstmal für die antworten.

ein exit 0 am ende des scripts brachte lediglich den erfolg, dass das script sich todrannte. auch der space zwischen >> und / brachte keinen erfolg.

auch ein zeilenumbruch wurde eingefügt. aber auch ohne erfolg.

wenn ich jetzt den befehl direkt in der crontab aufrufe legt er mir auch schön brav das logfile an, jedoch kein inhalt, was soviel bedeutet, wie dass er mir den befehl nicht ausführt.

der befehl ist in c programmiert. kann es sein, dass dieser eine ältere version der glibc benötigt?

Benutzeravatar
cpeine
Beiträge: 170
Registriert: 13.08.2003 15:16:22

Beitrag von cpeine » 13.02.2004 13:49:39

in der crontab kannst du keine befehle wie "script >> log" einfügen.

wie sieht denn deine crontab überhaupt aus?
Avoid the Gates of Hell, use Linux!

thermoman
Beiträge: 189
Registriert: 22.07.2003 16:31:23

Beitrag von thermoman » 13.02.2004 15:09:21

cpeine hat geschrieben:in der crontab kannst du keine befehle wie "script >> log" einfügen.
Wie kommst Du darauf? Wenn die Syntax stimmt ist das kein Problem.

mfg,
thermoman
Erst Debian GNU/Linux, dann ab 2004 ein paar Jahre Gentoo Linux und seit vielen Jahren wieder Debian (& Ubuntu)

Benutzeravatar
cpeine
Beiträge: 170
Registriert: 13.08.2003 15:16:22

Beitrag von cpeine » 13.02.2004 15:12:35

weil das bei mir immer zu einem leeren logfile geführt hat ...
könnte natürlich auch mein bug sein ;-)
Avoid the Gates of Hell, use Linux!

thermoman
Beiträge: 189
Registriert: 22.07.2003 16:31:23

Beitrag von thermoman » 13.02.2004 15:29:37

Also

Code: Alles auswählen

echo 12345 > ~/test
in der crontab funktioniert hier problemlos - gerade eben getestet.

mfg,
thermoman
Erst Debian GNU/Linux, dann ab 2004 ein paar Jahre Gentoo Linux und seit vielen Jahren wieder Debian (& Ubuntu)

urmele
Beiträge: 16
Registriert: 23.07.2003 23:20:17

Beitrag von urmele » 15.02.2004 19:21:58

Also bei mir funktionieren ja auch 9 andre cronjobs. auch mit logfileübergabe in der crontab.

nur das eine blöde script eben nicht.

thermoman
Beiträge: 189
Registriert: 22.07.2003 16:31:23

Beitrag von thermoman » 15.02.2004 20:57:48

Tja dann 3x darfst Du raten woran es liegt :)

Überprüft das Skript eventuell ob es eine interaktive Shell ist? Könnte mir vorstellen dass es das macht und wenn ja, dann eben kein Output ausgibt.

mfg,
thermoman
Erst Debian GNU/Linux, dann ab 2004 ein paar Jahre Gentoo Linux und seit vielen Jahren wieder Debian (& Ubuntu)

urmele
Beiträge: 16
Registriert: 23.07.2003 23:20:17

Beitrag von urmele » 15.02.2004 21:29:13

ne, eigentlich nicht:

Sieht wie folgt aus:
#!/bin/bash
/usr/bin/hhadmin >> /var/log/hhadmin.log

auf ein #!/bin/sh am Anfang bringt nichts.

Wenn ich aber direkt auf der Konsole /usr/bin/hhadmin >> /var/log/hhadmin.log eingebe, dann funktioniert alles einwandfrei.

Rufe ich das Script aber mit crontab auf erhalte ich ne Mail an root mit der Fehlermeldung: Segmentation fault

[/quote]

thermoman
Beiträge: 189
Registriert: 22.07.2003 16:31:23

Beitrag von thermoman » 15.02.2004 22:18:27

Dann such den Fehler bei hhadmin - Segmentation Fault ist wohl eindeutig.

thermoman
Erst Debian GNU/Linux, dann ab 2004 ein paar Jahre Gentoo Linux und seit vielen Jahren wieder Debian (& Ubuntu)

urmele
Beiträge: 16
Registriert: 23.07.2003 23:20:17

Beitrag von urmele » 15.02.2004 22:39:26

der fehler erscheint ja aber nur wenn ich das ding via crontab aufrufe. von der konsole aus nicht. von daher kann es eigentlich kein fehelr im script selbst sein.

auch wenn ich das oben gennante kurzscript via bash ausführe erfolgt keine fehlermeldung, sprich ein /root/hhadmin.sh (obiges Script) macht alles so wie es sein soll. Lediglich, wenn das Script automatisiert via Cronjob ausgeführt wird, kommt es zum Segmentation fault.

xfon
Beiträge: 139
Registriert: 18.01.2004 19:33:56
Kontaktdaten:

Beitrag von xfon » 15.02.2004 22:46:02

ich kann zwar mit dem "segmention fault" nichts anfangen, aber ich koennte mir auch vorstellen das das ganz einfach mit den rechten zusammenhaengt... waere doch theoretisch denkbar oder ?

urmele
Beiträge: 16
Registriert: 23.07.2003 23:20:17

Beitrag von urmele » 16.02.2004 22:15:54

mit rechten hatte es leider auch nix zu tun. selbst ein chmod 777 auf das script als auch auf das logfile brachte denselben fehler.

Antworten