Systemweiten CRON-Job einrichten |SuSE 7.3
Hallo zusammen! Ich möchte gern meinen Gateway jede Nacht um 01.00 herunterfahren und dachte mir, daß ich das am besten mit einem CRON-Job mache. Also hab ich mir die Infos und man cron und man crontab dazu angesehen und ein bißchen gegoogelt. Jetzt weiß ich, wie ich für einen bestimmten Benutzer einen Cronjob mit crontab -e anlegen kann. Aber ich möchte ja einen Job anlegen, der unabhängig vom eingeloggten Benutzer ist. Wo lege ich den denn hin? Muß ich den mit beliebigem Editor in /etc/crontab legen? crontab -e kommt da ja nicht dran, wenn ich recht verstanden habe. Irgendwie ist das mit den vielen verschiedenen CRON-Tabellen recht verwirrend. Gruß, Ralf -- Ralf Carlet -=- eMail: ralf@carlet.de
Ralf Carlet schrieb:
Hallo zusammen!
Ich möchte gern meinen Gateway jede Nacht um 01.00 herunterfahren und dachte mir, daß ich das am besten mit einem CRON-Job mache.
Also hab ich mir die Infos und man cron und man crontab dazu angesehen und ein bißchen gegoogelt.
Jetzt weiß ich, wie ich für einen bestimmten Benutzer einen Cronjob mit crontab -e anlegen kann. Aber ich möchte ja einen Job anlegen, der unabhängig vom eingeloggten Benutzer ist. Wo lege ich den denn hin? Muß ich den mit beliebigem Editor in /etc/crontab legen? crontab -e kommt da ja nicht dran, wenn ich recht verstanden habe.
Irgendwie ist das mit den vielen verschiedenen CRON-Tabellen recht verwirrend.
Ja, entweder /etc/crontab oder besser in eine eigene Datei mit bezeichnenden Namen unter /etc/cron.d/ Das Format ist überall gleich.
Hallo Markus! Am Samstag, 6. Juli 2002 12:57 schrieb Markus Kolb:
Ich möchte gern meinen Gateway jede Nacht um 01.00 herunterfahren und dachte mir, daß ich das am besten mit einem CRON-Job mache.
Ja, entweder /etc/crontab oder besser in eine eigene Datei mit bezeichnenden Namen unter /etc/cron.d/ Das Format ist überall gleich.
Hm, was ist der Vorteil bei einer eigenen Datei in /etc/cron.d? Und muß ich dann nicht noch einen Eintrag in die Crontab setzen, damit diese neue Datei auch gelesen wird? Der wäre dann so wie die bestehenden oder? Gruß, Ralf -- Ralf Carlet -=- eMail: ralf@carlet.de
*** Ralf Carlet (ralf@carlet.de) schrieb in suse-linux heute:
[...]
Ja, entweder /etc/crontab oder besser in eine eigene Datei mit bezeichnenden Namen unter /etc/cron.d/ Das Format ist überall gleich.
Hm, was ist der Vorteil bei einer eigenen Datei in /etc/cron.d?
Für Dich direkt keiner. Aber Sofware-Pakete (Sprich: RPMs) können dort ihre eigenen Dateien installieren und vor allen Dingen auch bei der Deinstallation wieder gefahrlos entfernen.
Und muß ich dann nicht noch einen Eintrag in die Crontab setzen, damit diese neue Datei auch gelesen wird? Der wäre dann so wie die bestehenden oder?
Nein. Wenn Du endlich mal nicht nur man-Pages, sondern auch - eine mindestens ebenso ergiebige Informationsquelle - "/usr/share/doc/\ packages/cron" durchsehen würdest, hättest Du mit dem Stichwort "cron.d" die Information finden können, dass die Dateien in "/etc/cron.d" auf die selbe Art und Weise geparst werden, wie "/etc/crontab". Ich persönlich bin dafür, "/etc/cron.d" für Cron-Files der Pakete "frei" zu halten und trage meine Sachen in "/etc/crontab" ein. Das muß einen aber nicht daran hindern, aus seinen eigenen Änderungen am System ein eigenes RPM zu basteln, was wiederum _für_ ein entsprechendes File in "/etc/cron.d" spricht. MG Henning Hucke -- Die schnellere Routine ist immer die, die Du nicht aufrufst!
Hallo! Am Samstag, 6. Juli 2002 17:18 schrieb Henning Hucke:
Nein. Wenn Du endlich mal nicht nur man-Pages, sondern auch - eine mindestens ebenso ergiebige Informationsquelle - "/usr/share/doc/\ packages/cron" durchsehen würdest, hättest Du mit dem Stichwort "cron.d" die Information finden können, dass die Dateien in "/etc/cron.d" auf die selbe Art und Weise geparst werden, wie "/etc/crontab".
Hm, das habe ich sogar, bereits ganz zu Beginn [also nicht erst endlich, muß ich ja jetzt wohl zu meiner Verteidigung sagen :-) ]. Aber leider erschließt sich (zumindest mir) nicht immer beim ersten Lesen der Sinn jedes der dort geschriebenen Worte. Steckt IMHO auch immer ne ganze Menge implizites Wissen in den Dokumenten, was man da einfach nicht so einfach rauslesen kann. Aber erst durch die Diskussion hier, Deine Hinweise und die der anderen und *nochmal* nachlesen ist mir jetzt relativ klar wie das Ganze funktioniert denk ich.
Ich persönlich bin dafür, "/etc/cron.d" für Cron-Files der Pakete "frei" zu halten und trage meine Sachen in "/etc/crontab" ein. Das muß einen aber nicht daran hindern, aus seinen eigenen Änderungen am System ein eigenes RPM zu basteln, was wiederum _für_ ein entsprechendes File in "/etc/cron.d" spricht.
Ja das klingt nach einem guten Ansatz. Gruß, Ralf -- Ralf Carlet -=- eMail: ralf@carlet.de
Am Sam, 2002-07-06 um 12.16 schrieb Ralf Carlet:
Hallo zusammen!
Ich möchte gern meinen Gateway jede Nacht um 01.00 herunterfahren und dachte mir, daß ich das am besten mit einem CRON-Job mache.
Also hab ich mir die Infos und man cron und man crontab dazu angesehen und ein bißchen gegoogelt.
Jetzt weiß ich, wie ich für einen bestimmten Benutzer einen Cronjob mit crontab -e anlegen kann. Aber ich möchte ja einen Job anlegen, der unabhängig vom eingeloggten Benutzer ist. Wo lege ich den denn hin? Muß ich den mit beliebigem Editor in /etc/crontab legen? crontab -e kommt da ja nicht dran, wenn ich recht verstanden habe.
Folgender Eintrag in /etc/crontab dürfte dir weiterhelfen: 00 1 * * * root /sbin/shutdown -h now Damit wird der Rechner um 01:00 Uhr heruntergefahren.
Irgendwie ist das mit den vielen verschiedenen CRON-Tabellen recht verwirrend.
Stimmt :) -- Matthias Hentges [www.hentges.net] "Thats what sucks about windows, you can't say that you rooted some one. Saying "I ADMINISTRATORED YOU!" just doesnt sound cool."
On Sam, 06 Jul 2002 at 13:07 (+0200), Matthias Hentges wrote:
Am Sam, 2002-07-06 um 12.16 schrieb Ralf Carlet: [...]
Jetzt weiß ich, wie ich für einen bestimmten Benutzer einen Cronjob mit crontab -e anlegen kann. Aber ich möchte ja einen Job anlegen, der unabhängig vom eingeloggten Benutzer ist.
Du verwechselst da was. *Für einen bestimmten Benutzer* meint: Mit den Rechten dieses Benutzers. Er muss nicht angemeldet sein, crontab läuft _immer_ (es sei denn, der Rechner ist aus ;-) Jan
*** Ralf Carlet (ralf@carlet.de) schrieb in suse-linux heute:
Hallo zusammen!
Ave.
Ich möchte gern meinen Gateway jede Nacht um 01.00 herunter-fahren und dachte mir, dass ich das am besten mit einem CRON-Job mache.
Gute Idee.
Also hab ich mir die Infos und man cron und man crontab dazu angesehen und ein bisschen gegoogelt.
Whups! "man cron crontab" hätten ausreichen sollen, im _alle_ enstehen- den Fragen zu beantworten.
Jetzt weiß ich, wie ich für einen bestimmten Benutzer einen Cronjob mit crontab -e anlegen kann. Aber ich möchte ja einen Job anlegen, der unabhängig vom eingeloggten Benutzer ist.
Ich habe immer wieder ausreichend Grund, um das folgende - immer wieder - Gebetsmühlenartig zu wiederholen: Lass das bescheuerte Windoof-Denken hinter Dir! Persönliche crontab-Einträge werden auch ausgeführt, wenn der entspre- chende User _nicht_ eingeloggt ist. Es ist mithin _unabhängig_ davon, welche User auf dem System arbeiten oder eben nicht.
Wo lege ich den denn hin? Muß ich den mit beliebigem Editor in /etc/crontab legen? crontab -e kommt da ja nicht dran, wenn ich recht verstanden habe.
In der Tat. "/etc/crontab" ist _der_ Ort, um regelmäßig wiederkehrende "System-Aufgaben" anzustoßen. Folgerichtig macht es also wenig Sinn, mit "crontab -e" als user "root" einen persönlichen crontab für root anzulegen. Ähnliches gilt für andere "System-User", insbesondere die, die kein brauchbares home directory haben.
Irgendwie ist das mit den vielen verschiedenen CRON-Tabellen recht verwirrend.
Was ist daran verwirrend? Es gibt den System-weiten crontab "/etc/cron\ tab" und die privaten der User, die ja keine Einträge im System-weiten machen können aber sicherlich auch bestimmte Sachen zu bestimmten Zeiten erledigt haben wollen. MG Henning Hucke -- Sagt in Hiroshima vor der Atombombenexplosion die eine Fliege zur anderen: "Ich habe vorgestern noch den amerikanischen Praesidenten geaergert und er wollte mich auf jeden Fall persoenlich und mit den eigenen Haenden toeten. Die Drohung mit der Atombombe ist also belanglos, solange ich bei euch bin!". Fuer Begriffsstutzige: "Nimm Dich nicht zu wichtig!" (c) H. Hucke
Hallo Henning & alle! Am Samstag, 6. Juli 2002 14:04 schrieb Henning Hucke:
Ich möchte gern meinen Gateway jede Nacht um 01.00 herunter-fahren und dachte mir, dass ich das am besten mit einem CRON-Job mache.
Also hab ich mir die Infos und man cron und man crontab dazu angesehen und ein bisschen gegoogelt.
Whups! "man cron crontab" hätten ausreichen sollen, im _alle_ enstehen- den Fragen zu beantworten.
Ja, wie gesagt "so ungefähr" hab ichs ja scheinbar verstanden, aber eben genau nicht. Daher dann die Frage.
Jetzt weiß ich, wie ich für einen bestimmten Benutzer einen Cronjob mit crontab -e anlegen kann. Aber ich möchte ja einen Job anlegen, der unabhängig vom eingeloggten Benutzer ist.
Ich habe immer wieder ausreichend Grund, um das folgende - immer wieder - Gebetsmühlenartig zu wiederholen:
Lass das bescheuerte Windoof-Denken hinter Dir!
:-) Ist vermutlich so, wie wenn man objektorientiert programmieren lernt, *nachdem* man schon prozedural programmiert -> eben nicht so einfach von heute auf morgen.
Persönliche crontab-Einträge werden auch ausgeführt, wenn der entspre- chende User _nicht_ eingeloggt ist. Es ist mithin _unabhängig_ davon, welche User auf dem System arbeiten oder eben nicht.
Das ist mir zum Beispiel ganz und gar nicht deutlich geworden! Danke für den Hinweis! Das ist nämlich ein wichtiger Punkt!
Wo lege ich den denn hin? Muß ich den mit beliebigem Editor in /etc/crontab legen? crontab -e kommt da ja nicht dran, wenn ich recht verstanden habe.
In der Tat. "/etc/crontab" ist _der_ Ort, um regelmäßig wiederkehrende "System-Aufgaben" anzustoßen. Folgerichtig macht es also wenig Sinn, mit "crontab -e" als user "root" einen persönlichen crontab für root anzulegen. Ähnliches gilt für andere "System-User", insbesondere die, die kein brauchbares home directory haben.
Hm, auch ein prima Hinweis. Siehst Du, das sind so die Hinweise, die zumindest ich den man's und gegoogelten Seiten nicht entnehmen konnte.
Irgendwie ist das mit den vielen verschiedenen CRON-Tabellen recht verwirrend.
Was ist daran verwirrend? Es gibt den System-weiten crontab "/etc/cron\ tab" und die privaten der User, die ja keine Einträge im System-weiten machen können aber sicherlich auch bestimmte Sachen zu bestimmten Zeiten erledigt haben wollen.
Ja das war noch klar...aber dann gibts ja noch /etc/cron.{d|daily|...} und überall steht ne Menge Zeug drin ...und beim ersten Mal tuts eben immer weh. Also danke für die Tipps, Ralf -- Ralf Carlet -=- eMail: ralf@carlet.de
* Ralf Carlet schrieb am 06.Jul.2002:
Ja das war noch klar...aber dann gibts ja noch /etc/cron.{d|daily|...} und überall steht ne Menge Zeug drin ...und beim ersten Mal tuts eben immer weh.
/etc/cron.daily usw. sind keien originären crondateien. Ausführbare Dateien (Sowohl Binärprogramme als auch Skripte) werden von bestimmten Programmen ausgeführt. Diese Programme hat SuSE in die crontab geschrieben. Wenn alles in /etc/crontab löscht, so werden diese Progarmme nicht mehr ausgeführt. Das heißt nicht, daß ich dies empfehlen würde. Das ganze gibt es deshalb, weil heutzutage längst nicht mehr jeder Server rund um die Uhr läuft. Wenn ein Server rund um die Uhr läuft, so sind diese Programme und auch die Dateien in den Verzeichnissen und diese Verzeichnisse selber überflüssig. Wenn aber der Rechner z.B abends abgeschaltet wird, dann hat einen Eintrag 1:00 wenig Sinn. Er wird nicht ausgeführt, weil der Rechner um 1 Uhr nicht mehr läuft. Wenn da 1:00 Uhr steht, so wird das angegebene Programm um 1 Uhr ausgeführt. Nicht früher und nicht später. Wenn der Rechner zu diesem Zeitpunkg ausgeschaltet ist, so wird es halt nicht ausgeführt. Da man oftmals aber gar nicht weiß, wann ein Rechner eingeschaltet ist, und wann nicht, gibt es die /etc/cron.daily. Die Programme, die sich in diesem Verzeichnis befinden werden ein Mal am Tag ausgeführt, wenn der Rechner an ist. Bernd -- Welches Buch ist zu empfehlen? Schon mal bei SuSE vorbeigesehen? http://www.suse.de/de/products/books/index.html oder die Empfehlungen der SuSE-Entwickler auf dem eigenen Rechner? file:///usr/share/doc/sdb/de/html/literatur.html |Zufallssignatur 5
On Sam, 06 Jul 2002 at 18:19 (+0200), Bernd Brodesser wrote: [cron.daily]
Da man oftmals aber gar nicht weiß, wann ein Rechner eingeschaltet ist, und wann nicht, gibt es die /etc/cron.daily. Die Programme, die sich in diesem Verzeichnis befinden werden ein Mal am Tag ausgeführt, wenn der Rechner an ist.
... oder eben dann, wenn der Rechner _wieder_ an ist und mindestens 1 (7, 30) [1] Tage seit dem letzten Lauf der Cron-Jobs vergangen ist. Jan [1] - daily, weekly, monthly
* Henning Hucke schrieb am 06.Jul.2002:
*** Ralf Carlet (ralf@carlet.de) schrieb in suse-linux heute:
Jetzt weiß ich, wie ich für einen bestimmten Benutzer einen Cronjob mit crontab -e anlegen kann. Aber ich möchte ja einen Job anlegen, der unabhängig vom eingeloggten Benutzer ist.
Ich habe immer wieder ausreichend Grund, um das folgende - immer wieder - Gebetsmühlenartig zu wiederholen:
Lass das bescheuerte Windoof-Denken hinter Dir!
ACK! Linux-Denke ist offensichtlich anders. Es wird imho vieles klarer, wenn man sich bewußt macht, daß Linux ein echtes Mehrbenutzersystem ist. Auch wenn es heute nicht mehr so häufig anzutreffen ist, so macht doch eine Terminalumgebung vieles klarer. Stell Dir Ralf vor, an Deinem Rechner hängen ca. 20 echte Konsolen. An jeder Konsole arbeitet ein Mitarbeiter. Die Konsolen sind reine Ein/Ausgabe-Geräte und nicht etwa eigenständige Rechner. Es handelt sich somit auch nicht um ein Netzwerk. Der Prozessor in Deinem Rechner ist der einzige Prozessor, und nur dort gibt es auch Festplatten. Woimmer ein Mitarbeiter einloggt, er findet dort seine Umgebung. Ein Mitarbeiter kann selbstverständlich auch auf mehere Konsolen gleichzeitig eingeloggt sein. Andere Mitarbeiter sind zur Zeit vielleicht gar nicht eingeloggt. Das Einloggen etwas vollkommen anderes ist als booten, wird an diesem Beispiel hoffentlich klar. Zwar muß der Rechner hochgefahren sein, damit ein User sich einloggen kann, aber es muß kein User eingeloggt sein. Der Rechner bleibt hochgefahren. Wenn man sich dies alles vor Augen führt wird imho einiges klarer, zum Beispiel auch, warum nicht einfach jeder User eine Partition mounten und umounten darf, oder den ganzen Rechner runterfahren.
Persönliche crontab-Einträge werden auch ausgeführt, wenn der entspre- chende User _nicht_ eingeloggt ist. Es ist mithin _unabhängig_ davon, welche User auf dem System arbeiten oder eben nicht.
Das ist ja gerade der Sinn von cron, daß bestimmte Programme auch dann ausgeführt werden sollen, wenn der betreffende User gerade mal nicht da ist.
Wo lege ich den denn hin? Muß ich den mit beliebigem Editor in /etc/crontab legen? crontab -e kommt da ja nicht dran, wenn ich recht verstanden habe.
In der Tat. "/etc/crontab" ist _der_ Ort, um regelmäßig wiederkehrende "System-Aufgaben" anzustoßen. Folgerichtig macht es also wenig Sinn, mit "crontab -e" als user "root" einen persönlichen crontab für root anzulegen. Ähnliches gilt für andere "System-User", insbesondere die, die kein brauchbares home directory haben.
Irgendwie ist das mit den vielen verschiedenen CRON-Tabellen recht verwirrend.
Was ist daran verwirrend? Es gibt den System-weiten crontab "/etc/cron\ tab" und die privaten der User, die ja keine Einträge im System-weiten machen können aber sicherlich auch bestimmte Sachen zu bestimmten Zeiten erledigt haben wollen.
Man muß sich darbei, darüber im Klaren sein, daß bei einer Umgebung, so wie ich sie oben beschrieben habe, nur der Systemadministrator das root-Paßwort kennt. Alle anderen User kennen dieses Paßwort nicht, wollen aber trotzdem nachts, eigene Aufräumarbeiten machen. Bernd -- ACK = ACKnowledge = Zustimmung | NAC = No ACknowledge = keine Zustimmung DAU = Dümmster Anzunehmender User | LOL = Laughing Out Loud = Lautes Lachen IIRC = If I Remember Correctly = Falls ich mich richtig erinnere OT = Off Topic = Am Thema (der Liste) vorbei |Zufallssignatur 11
participants (6)
-
B.Brodesser@t-online.de
-
Henning Hucke
-
Jan.Trippler@t-online.de
-
Markus Kolb
-
Matthias Hentges
-
Ralf Carlet