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

[solved] cron-job startet nicht

3dknut

Newbie
Hallo alle zusammen,
bin seit heute Mitglied im Forum und habe gleich mal ein Problem. Ich habe mit crontab -e den Eintrag "0 22 * * * root /sbin/shutdown -h now" als Job hinzugefügt. Bin ich eingeloggt, funzt der Job. Linux fährt herunter. Da es aber ein Server werden soll, der sich jeden Abend um 22.00 Uhr herunter fährt loggt sich ja keiner ein. Der CronJob wird im ausgeloggten Zustand nicht ausgeführt. Was habe ich eventuell falsch gemacht?

:?:
 

admine

Ultimate Guru
Du hast den Cron-Job als root erstellt?
Dann sollte er in /var/spool/cron/tabs/root stehen und die Angabe des Users "root" überflüssig sein.

EDIT:
Wird aber an den mitgelieferten Optionen liegen ;)
=> schreib den Befehl in ein Script und lass das Script via Cron-Job starten.
 

pfoe

Member
oder versuchs mal mit "init 0" statt shutdown. das problem mit dem auslagern in ein script hatte ich auch schon, und konnte es so loesen. denke das sollte den fehler schon beheben.

gruss pfoe
 

noob222

Newbie
hab mal da eine generelle frage:

wenn ich mit crontab -e einen neuen Cronjob definieren möchte, wie kann ich dann meinen Cronjob unter Solaris mit Putty abspeichern? Ich finde im Netz keinen Befehl wie ich meine Datei über die Konsole von Putty abspeichern kann.

für eine kurze Hilfestellung wäre ich sehr dankbar

mfg
 

admine

Ultimate Guru
Ich kann mir jetzt kaum vorstellen, dass dabei putty relevant ist.
Wenn du deine crontab mit "crontab -e" öffnest, wird sie ja mit einem Editor (meist vi) geöffnet.
Und wenn du den Editor mit speichern verlässt, dann sollte die crontab gespeichert sein.

Oder hab ich deine Frage missverstanden? :roll:
 

noob222

Newbie
hmm, wahrscheinlich ist putty dabei nicht relevant aber habe mir gedacht, das ich es als zusatzinfo reinschreiben soll :)

wenn ich "crontab -e" eingebe und es öffne, so bekomme ich nicht den vi- Editor. Ich bekomme als erstes eine "0" - soll wohl bedeuten die 0. Zeile - und dann gebe ich mein Cronjob ein und wenn ich wie bei vi mit ":w" speichern möchte, dann bekomme ich dein Fragezeichen. Keine Tastekombination ist fürs speichern vorhanden.
 

noob222

Newbie
welches Editor das ist, weiss ich leider nicht. Und wie soll ich echo $EDITOR eingeben und überprüfen, wenn ich es nicht speichern kann?

Folgendes:

Hab ein Script zur Datensicherung eines Servers. Möchte diese Datensicherung per Cronjob durchlaufen lassen. Das Script funktioniert, wenn ich es manuell laufen lasse.
Sagen wir mal, das mein Script im Verzeichnis /noob222/server/datensicherung.sh ist.

Mein .cron Datein muss doch im Order /etc/cron/ abgespeichert werden oder?
Weil im Verzeichniss /noob222/server/ mit dem Befehl "crontab -l" keine Einträge gefunden werden. Auch funktioniert mein .cron Datei in diesem Verzeichnis nicht.
Daher möchte ich es mit "crontab -e" unter /etc/cron/ abspeichern. Jedoch weiss ich nicht wie ich unter (welches Editor das auch ist) meine Anweisungen speichern kann.

Würde folgendes gehen????
Ich öffne mit dem vi-Editor eine neue Datei, speicher es Unter /noob222/server/test.cron und mache davon eine cp in den /etc/cron/ Order??
Also: cp test.cron /etc/cron/test.cron
 

noob222

Newbie
ps: ich bekomme folgende Fehlermeldung: " /etc/cron is not a directory". Jetzt habe ich mit dem Befehl "l" gesehen, das ich bei "cron" auf "../user/sbin/cron" zugewiesen/weitergeleitet werde.

Kann oder muss ich mein .cron-Datei in diesem Verzeichnis abspeichern?
 

admine

Ultimate Guru
Ähm ... du solltest dich ein wenig intensiver mit Cron-Jobs befassen.

Bei "crontab -e" wird die crontab im wirklich richtigen Verzeichnis erstellt.
Ist bei Solaris /var/spool/cron/crontabs.
Und im Cron-Job gibst du dann den Pfad zu deinem auszuführenden Script an.

add Editor:
Du bist via putty auf dem Server und hast somit eine Shell vor dir, in die du den von mir geposteten Befehl nur eingeben musst ;)
 

noob222

Newbie
ok, mein problem ist wirklich nur diese abspeichern der .cron Datei.

auch habe ich in der .cron Datei den Pfad angegeben wo das Script auszuführen ist. Sicherungs-Script und .cron Datei soweit fertig nur.....

Noch mal die Frage: wenn ich in einem beliebigen Verzeichniss "crontabe -e" aufrufe (und es ist nicht der vi-Editor) und dieses dann abspeicher (wie ich das mache weiss ich nicht) landet meine .cron Datei also in dem richtigen Verzeichnis (wie du meintest unter /var/spool/cron/crontabs) ????

da ich nicht weiss wie ich meine Datei, nachdem ich den Befehl "crontab -e" eingegeben habe, abspeicher, würde ich gerne wissen ob ich diese Datei einfach mit dem vi-Editor erzeugen kann und es dann an die richtige Stelle kopieren kann? :) wahrscheinlich geht das nicht :)
 

admine

Ultimate Guru
noob222 schrieb:
ok, mein problem ist wirklich nur diese abspeichern der .cron Datei.
Woher nimmst du eigentlich diese Bezeichnung .cron?

noob222 schrieb:
Noch mal die Frage: wenn ich in einem beliebigen Verzeichniss "crontabe -e" aufrufe (und es ist nicht der vi-Editor) und dieses dann abspeicher (wie ich das mache weiss ich nicht) landet meine .cron Datei also in dem richtigen Verzeichnis (wie du meintest unter /var/spool/cron/crontabs) ????
Ja.
Und den Editor, wenn du vi nutzen willst, kannst du dir doch setzen ... eben als diese Variable EDITOR.

noob222 schrieb:
da ich nicht weiss wie ich meine Datei, nachdem ich den Befehl "crontab -e" eingegeben habe, abspeicher, würde ich gerne wissen ob ich diese Datei einfach mit dem vi-Editor erzeugen kann und es dann an die richtige Stelle kopieren kann? :) wahrscheinlich geht das nicht :)
Würde ich nicht tun ... es gibt ja einen Grund, warum das Kommando "crontab" existiert ;)
Zum Bsp. um eine Plausibilitätsprüfung zu machen.
 

noob222

Newbie
hab mit dem export EDITOR=vi den vi als Editor eingerichtet und bekomme auch die Bestätigung. Leider kriege ich noch immer nicht de vi als Editor wenn ich crontab -e eingebe.

woran kann das liegen?
 

admine

Ultimate Guru
Code:
env | grep EDITOR
Kommt da auch vi ?

Wenn nicht, dann mal den Editor so setzen:
Code:
EDITOR=vi
export EDITOR

Unter Solaris ist es nicht immer so gut, den export-Befehl voran zu stellen.

Aber auch der eingestellte Editor sollte deine crontab speichern können.
Musst halt rausbekommen, welcher es ist und dann nachlesen ;)
 
Ach man muss unter Solaris nur bash starten, dann klappt das auch mit dem Export :-D
Manchmal gibt es auch nichtsotolle Programme die in $EDITOR einen absoluten Pfad erwarten - pine z.B. Ist aber meist nicht notwendig das zu tun (und ich denke eher pine sollte dementsprechend gefixt werden).
 

noob222

Newbie
ok, hab mit
Code:
setenv EDITOR vi 
echo $EDITOR

den vi als Standarteditor eingerichtet. Mit dem export-Befehl kommt der csh nicht klar.
Trotzdem habe ich (mit Bestätigung von echo $EDITOR, das der Editor vi sei) mit dem Befehl "crontab -e" nicht den vi als Editor geöffnet bekommen.

Daher habe ich einfach mit vi eine Datei editiert, die ich dann mit "crontab Dateiname" in /var/spool/cron/crontabs abgespeichert


Auf jeden Fall funktioniert jetzt auch mein Cronjob.
Danke für eure Hilfe

mfg
 

regexer

Advanced Hacker
noob222 schrieb:
Mit dem export-Befehl kommt der csh nicht klar.
Kurze Zwischenfrage: Was für ein Solaris auf was für einer Maschine verwendest du?
Ich arbeite mit Solaris10@Sparc, und bei mir ist die Standard-Shell jsh. Hier ist es richtig, dass man Zuweisungen von Variablenwerte und den export-Befehl trennen sollte. Mit der csh kenne ich mich leider nicht aus...
 
Oben