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

[solved] Crontan editieren

Moin an alle!

Kann mir jemand verlickern, warum ich immer mit crontab -e editieren soll???
Also ich hab mir einfach mal ne Textdatei so allla:

* * * * * root test.sh

geschrieben und diese dann mit >> in die /etc/crontab eingetragen und siehe da...
alles läuft...problemlos!

natürlich ist es blöd wenn gerade zufällig ein Cron laufen will...aber diese Situation ist doch total unwahrscheinlich dass das passeirt...?
Was gibt es noch für Gründe!!!!

Gruß

Micha
 

panamajo

Guru
LinuxAlien schrieb:
Was gibt es noch für Gründe!!!!
1) /etc/crontab kann nur von root geschrieben werden, also kann nur root cronjobs nach deiner Methode ändern. Andere User gucken in die Röhre bzw. bei vielen Anwendungen ist es aus Sicherheitsgründen ratsam diese nicht als root auszuführen
2) Bei einem Systemupdate wird die Datei /etc/crontab überschrieben, also sind die cronjobs weg.
 
OP
L

LinuxAlien

Member
Gut...danke erst mal..!
also wir benutzen fest das 10.2 un ddaher ist das mti dem Systemupdate egal...
ich habe eine Installationsroutine mit der ich verschiedene Programme per Skript installiere und da soll ein job rien...also ist doch nicht schlimm wenn cihe s so amche!
 

panamajo

Guru
LinuxAlien schrieb:
also wir benutzen fest das 10.2 un ddaher ist das mti dem Systemupdate egal...
Das ist nie egal. Support für 10.2 läuft IIRC im Mai ab.
LinuxAlien schrieb:
also ist doch nicht schlimm wenn cihe s so amche!
Doch, es ist ist schlimm, zumal du dbzgl. offensichtlich lernresistent bist.
Wenn du sowieso vorhast deinen Murks unverändert weiterzuwursteln wozu fragst du dann hier?
Und wo liegt der Vorteil deiner Methode gegenüber der Verwendung von crontab -e?
 

admine

Ultimate Guru
LinuxAlien schrieb:
Also ich hab mir einfach mal ne Textdatei so allla:

* * * * * root test.sh

geschrieben und diese dann mit >> in die /etc/crontab eingetragen und siehe da...
alles läuft...problemlos!
Schade eigentlich, dass das tut.
Bei IRIX (und bei evt. noch anderen Unix'en) geht das so nicht.
Da muss die Crontab via "crontab -e" angefasst werden, ansonten übernimmt Cron keine Änderungen ;)
 
OP
L

LinuxAlien

Member
ich würde ja auch lieber den goldenen Weg gehen, aber sag mir mal wie du per skript die crontab -e editierne willst???
Du musst dir das so vorstellen:

ich habe ein Shellskript "cronhinzufüger.sh"
dieses fügt dem System einen Cronjob hinzu automatisch....

ich hatte es die ganze Zeit so gemacht dass ich gesagt hab in cronhinzufüger.sh

echo "* * * * * root führe_das_aus_jede_Minute.sh" >> /etc/crontab


wie willst du das denn anders lösen???

so geht es nicht:::

echo "* * * * * root führe_das_aus_jede_Minute.sh" >> `crontab -e`

und die datei /var/spool/cron/root darfst du noch weniger editieren als die etc/crontab (denn in der steht es sogar drin dass du nicht editieren sollst, in derr /etc/crontab steht davon nichts)

bin mal gespannt wie du das lösen würdest

Gruß
Micha
 

panamajo

Guru
LinuxAlien schrieb:
bin mal gespannt wie du das lösen würdest

man 1 crontab schrieb:
The -e option is used to edit the current crontab using the editor specified by the VISUAL or EDITOR environment variables. After you exit from the editor, the modified crontab will be installed automatically.

Man kann also durch Setzen der Env. Variable EDITOR bestimmen ob ein interaktiver Editor (Default: vi) oder ein anderer oder aber ein anderes Programm oder Script (z.B. /bin/cat) verwendet wird.
 

panamajo

Guru
Noch einfacher: crontab kann auch direkt Angaben aus einer Datei lesen. Zusammen mit den Optionen -[rl] ist da ja alles vorhanden was man braucht...

Code:
foo:
0 0 * * *       /bin/ls $HOME
Code:
$crontab foo
$ crontab -l
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (tmp/ctest installed on Thu Apr 17 13:53:15 2008)
# (Cron version V5.0 -- $Id: crontab.c,v 1.12 2004/01/23 18:56:42 vixie Exp $)
0 0 * * *       /bin/ls $HOME
 
Oben