PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Suse12.1 cron.daily



andy135
11.12.11, 10:59
Hallo zusammen,

habe Suse12.1 als Server. Möchte nun meinen täglichen Shutdown, den ich in crontab eingetragen habe, in cron.daily eintragen. doch wie gehe ich da vor ? habe schon mal eine ausführbare test datei mit dem vi erstellt, und so eingetragen wie bei crontab. doch wie muß ich die cron.daily aktivieren, dass das system dort sucht ??

reni
11.12.11, 17:16
Das Script ins Verzeichnis cron.daily legen und gut.
Dann sollte es auch abgearbeitet werden.

andy135
11.12.11, 17:51
das tut es halt seltsamerweise nicht. habe die datei mal testweise nur "test" genannt und für root ausführbar gemacht, liegt da evtl der fehler ? muß die datei test.sh heißen ?

reni
11.12.11, 18:00
Was steht in /etc/crontab und was sagt dir:

systemctl status cron.service

andy135
11.12.11, 21:39
Deine genannte Zeile sagt mir nichts. In Crontab steht:

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
#
#cron.daily
-*/15 * * * * root test -x /usr/lib/cron/run-crons && /usr/lib/cron/run-crons >/dev/null 2>&1

30 00 * * * root /sbin/shutdown -h now

reni
11.12.11, 21:49
Deine genannte Zeile sagt mir nichts.
Ähm ... du solltst das mal als root in 'ner Shell eingeben und das Ergebnis posten ;)

andy135
11.12.11, 21:58
achso.

systemctl status cron.service
cron.service - Command Scheduler
Loaded: loaded (/lib/systemd/system/cron.service; enabled)
Active: active (running) since Sun, 11 Dec 2011 10:44:32 +0100; 11h ago
Main PID: 592 (cron)
CGroup: name=systemd:/system/cron.service
â 592 /usr/sbin/cron -n

reni
11.12.11, 22:10
Dann könnte es noch am Script selbst liegen.
Sind die darin verwendeten Befehle im $PATH von cron enthalten:

PATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/binWenn nicht, dann trage die Befehle im Script mit vollständigem Pfad ein.

Und ich würde dem Script einen anderen Namen geben ... weil es einen Befehl gibt, welcher test heißt ;)

andy135
11.12.11, 22:17
opk, versuch ich morgen mal. die zeile steht nicht drin.

reni
11.12.11, 22:43
opk, versuch ich morgen mal. die zeile steht nicht drin.
Die Zeile muss nicht drin stehen!
Du weißt nicht wirklich, was ich meine bzw. was $PATH ist.

Beispiel:
Solltest du in deinem Script den Befehl ls verwenden, dann steht er in /bin
=> nach der Zeile in /etc/crontab, der PATH-Variable von cron, ist /bin enthalten
PATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin
=> der Befehl ls wird gefunden und ausgeführt.

In welchem Verzeichnis ein Befehl steht bzw. welchen Pfad zum Befehl führt, sagt dir:

which <befehl>
~> which ls
/bin/ls

andy135
11.12.11, 22:53
hast recht, ich versteh es nicht. ich möchte eigentlich in meinem script nur den einen befehl verwenden:

30 00 * * * root /sbin/shutdown -h now

drcux
12.12.11, 04:30
In /etc/cron-daily müssen echte Skripte liegen, keine Crontab-Einträge. Außerdem eignet sich cron-daily nicht dazu, um einen Server Zeitgesteuert runterzufahren. Dafür ist ein Croneintrag von root besser geeignet.

reni
12.12.11, 07:17
hast recht, ich versteh es nicht. ich möchte eigentlich in meinem script nur den einen befehl verwenden:
30 00 * * * root /sbin/shutdown -h now
Das hättest du können auch schon mal eher sagen ;)

Und wie drcux schon erwähnte ... dafür ist dann die root-Crontab da.
Als root in einer Shell eingeben:

crontab -eund deinen Eintrag da hinein.