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

[gelöst] Problem mit Cron und shutdown

Neubauerp

Newbie
Da ich einen Server zuhause habe und der nicht den ganzen Tag laufen soll, brauch ich was, das ihn automatisch jeden Tag ausschaltet. Auf ihm ist Suse 10.1 installiert. Da ich keinerlei Ahnung von Scripten habe, hab ich es mal mit einem Cronjob versucht, bin aber auch gescheitert.
Hier ist meine /etc/crontab
Code:
SHELL=/bin/sh
PATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin
MAILTO=root
Die Zeilen müssten eigentlich stimmen
Code:
-*/15 * * * *   root  test -x /usr/lib/cron/run-crons && /usr/lib/cron/run-crons >/dev/null 2>&1
Diese Zeile ist vorgegeben und führt ein Script aus, dass die Scripte in den Ordnern /etc/cron* ausführt (glaube ich). Was mich am meisten irritiert ist der Strich am Anfang. Überall wo ich nach Cron gegooglet hab, stand nichts von einem Strich am Anfang der Zeile.
Code:
55 20 * * * root shutdown -h now
(Muss ich jetzt auch einen Strich vor meinen Cronjob machen????)

Meine erste Frage ist jetzt überhaupt erst einmal:
Kann man shutdown -h now überhaupt einfach so von Cron ausführen lassen oder ist das gar nicht möglich und man braucht ein Script, dass wiederrum cron ausführt???
 

death

Member
hallo!

in den cronjobs muss man meißt die kompletten Pfade angeben,

also:
/sbin/shutdown now -h

sonst kann ich keinen Fehler erkennen.

was steht denn in der /var/log/messages dazu ?
 

regexer

Advanced Hacker
FHanky schrieb:
Was mich am meisten irritiert ist der Strich am Anfang. Überall wo ich nach Cron gegooglet hab, stand nichts von einem Strich am Anfang der Zeile.
Ich habe das auch noch nie verwendet. Aber man 5 crontab sagt als Erklärung:
If the uid of the owner is 0, he can put a "-" as first character of a crontab entry. This will prevent cron from writing a syslog message about this command getting executed.
 
OP
N

Neubauerp

Newbie
Also ich hab es leider doch nicht hinbekommen :oops: :oops: :

Das kommt wenn ich (als root eingeloggt) crontab -l eingebe:
Code:
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.XXXXnAMEzR installed on Tue Oct 30 23:40:08 2007)
# (Cron version V5.0 -- $Id: crontab.c,v 1.12 2004/01/23 18:56:42 vixie Exp $)
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
#
41 23 * * * /sbin/shutdown -h -t 120 now

Und die dazugeörigen Meldungen in der /var/log/messages :
Code:
Oct 30 23:37:07 Hanke-Server crontab[6937]: (root) REPLACE (root)
Oct 30 23:37:13 Hanke-Server crontab[6938]: (root) LIST (root)
Oct 30 23:38:01 Hanke-Server /usr/sbin/cron[3134]: (*system*) BAD FILE MODE (/etc/crontab)
Oct 30 23:38:01 Hanke-Server /usr/sbin/cron[3134]: (root) RELOAD (tabs/root)
Oct 30 23:39:09 Hanke-Server crontab[6939]: (root) LIST (root)
Oct 30 23:39:14 Hanke-Server crontab[6940]: (root) BEGIN EDIT (root)
Oct 30 23:40:01 Hanke-Server /usr/sbin/cron[6943]: (root) CMD (/sbin/shutdown -h now^M)
Oct 30 23:40:08 Hanke-Server crontab[6940]: (root) REPLACE (root)
Oct 30 23:40:08 Hanke-Server crontab[6940]: (root) END EDIT (root)
Oct 30 23:41:01 Hanke-Server /usr/sbin/cron[3134]: (*system*) BAD FILE MODE (/etc/crontab)
Oct 30 23:41:01 Hanke-Server /usr/sbin/cron[3134]: (root) RELOAD (tabs/root)

Ich kann mir da keinen Reim drauf bilden was da falsch ist. :( :cry: :(
 
:roll:
(/sbin/shutdown -h now^M)

Da hat jemand den Crontab von einer Dose geändert.
das ^M am Ende sieht für mich sehr verdächtig aus.

Unix nutzt am Ende der Zeile ein LF (Linefeed)
Windows CR LF(carriage Return, Linefeed)
=> Windows Editor setzen ein für UNIX unerwartetes Zeichen ans Ende..

Haveaniceday
 
Der Cron kann keine/nicht so viele Parameter hinter dem Befehl verarbeiten. Schreibs als Einzeiler iin ein Script und rufe dieses auf.

Grüße
 
carsten schrieb:
Der Cron kann keine/nicht so viele Parameter hinter dem Befehl verarbeiten. Schreibs als Einzeiler iin ein Script und rufe dieses auf.

Grüße
Das glaube ich nicht.

Das Problem ist hier:
Oct 30 23:41:01 Hanke-Server /usr/sbin/cron[3134]: (*system*) BAD FILE MODE (/etc/crontab)
=> crontab ist mit ^M ein "dos-File".
=> im Zweifelsfall, falls nicht cron schon meckern würde würde sich
shutdown über ein Argument "now^M" also "now<ascii 0x0d>" beschweren.
 
Oben