Powered by Invision Power Board


Seiten:12 ( Zum ersten neuen Beitrag ) Reply to this topicStart new topicStart Poll

> Cron und crontab, Regelmäßiges Ausführen von Programmen!
Tekbaron
Geschrieben am: Dienstag, 06.November 2001, 11:44 Uhr


Leader
********

Gruppe: [-bmb-]Admin
Beiträge: 2385
Mitgliedsnummer.: 12
Mitglied seit: 2001-03-07




cron:

Auf einem Linux-Rechner ist es erforderlich bestimmte Programme zu aktualisieren. Hierzu steht des Programm cron zu Verfügung, der bestimmte Programme aufnimmt und diese zu bestimmten Zeiten aufruft und dadurch diese Programme gestartet werden. Die zentrale Datei dafür ist /etc/crontab . Weiter werden bestimmte Dienste in den Dateien /etc/cron.daily - /etc/cron.weekly und /etc/cron.monthly festgelegt.

Minute Stunde Tag-im-Monat Monat Wochentag Benutzer Befehl [Argumente]

Um Einträge in  der Datei /etc/crontab festzulegen kann an der Shell diese aufgerufen werden.

Befehl: crontab


Zusätzlich müssen die Datei /etc/cron.allow und /etc/cron.deny angelegt werden. In diesen Dateien wird festgelegt welche Benutzer cron verwenden dürfen In /etc/cron.allow welche Benutzer anwenden dürfen und in /etc/cron.deny welche Benutzer cron nicht anwenden dürfen.

Cron geht davon aus das der Rechner nicht abgeschaltet wird, das ist aber nicht immer der Fall.

-l zeigt die aktuelle crontab- Liste an.

-r löscht ihre aktuelle Liste.

-e öffnet einen Editor zum Bearbeiten Ihrer Liste.

-u Benutzername -L|-r|-e bearbeitet eine fremde Liste (Superuser).


crontab

In der Datei /etc/crontab wird festgelegt welche Programme gestartet werden sollen und mit einem Editor bearbeitet werden können, der nach aufruf von crontab automatisch geöffnet wird.

Feld
Inhalt

Minute
0-59 oder *

Stunde
0-23 oder *

Tag des Monats
0-31 oder *

Monat
0-12 oder Monatsname oder *

Wochentag
0-7 (0=Sonntag) oder Wochentag (zb. mon) oder *

Kommando

Jedes beliebige Linux-Kommando oder sonstiges Programm.


Beispiele für crontab-Einträge:

Ausführung jede Minute
* * * * * echo"..jede Minute"

Ausführung zur vollen Stunde
0 * * * * echo"...immer zur vollen Stunde"

Ausführung zur vollen und halben Stunde
0,30 * * * * echo"...zur vollen und halben Stunde"

Ausführung jeden Freitag um 20:00 Uhr
0 20 * * 5 echo"Es ist Freitag,20:00 Uhr"

Aus führung um 0:00 Uhr, immer wenn der 13. auf einen Freitag fällt.
0 0 13 * 5 echo"Achtung, es ist Freitag der 13."

Ausführung Montag bis Freitag um 12:00 Uhr
0 12 * * 1-5 echo"Mahlzeit"

Ausführung jeden Freitag um 16:00 Uhr.
0 16 * * 5 echo"Endlich Wochenende"


Einige Einträge werden automatisch während der Installation in die Dateien geschrieben und führen täglich, wöchendlich oder monatlich bestimmte Programme aus.

Das erklärt auch die erhöhte Aktivität ihres Rechners nach Systemstart.
PMUsers WebsiteICQ
Top
Tekbaron
Geschrieben am: Dienstag, 05.März 2002, 12:43 Uhr


Leader
********

Gruppe: [-bmb-]Admin
Beiträge: 2385
Mitgliedsnummer.: 12
Mitglied seit: 2001-03-07




Martin Hilfe !!!!,

Wie erlaube ich anderen Usern als root eine crontab zu bearbeiten und auszuführen ???

Also ich habe biss jetzt den user in die gruppe trusted eingetragen und die datei /var/spool/cron/allow angelegt und mit dem user gefüllt. alles kein erfolg, selbst wenn ich unter root die crontab des users editiere wird nicht´s was dadrin steht bearbeitet. hilfe !!!!!


--------------------
mfg Tekbaron Leader [-bmb-] Clan

user posted image

user posted image

user posted image
PMUsers WebsiteICQ
Top
Martin
Geschrieben am: Mittwoch, 06.März 2002, 12:18 Uhr


KillingSpree
****

Gruppe: [-bmb-]Points
Beiträge: 130
Mitgliedsnummer.: 5
Mitglied seit: 2001-06-19




Hi Jörg !

Die Zugriffserlaubnis- und Zugriffsverweigerungsdateien liegen nicht in /var/spool/cron sondern in /etc. Wenn beide nicht existieren, kann entweder jeder das Kommando "crontab" benutzen oder nur root (systemabhängig). Mit "crontab -u username -e" sollte es möglich sein, eine solche Cron-Tabelle anzulegen, für den Nutzer selbst auch ohne die "-u username"-Option. Wichtig für die eigene Cron-Tabelle: Es gibt, wie in der ersten Meldung zu diesem Thema, für einzelne Nutzer genau sechs Spalten in der Tabelle: die ersten fünf spezifizieren die Zeit, die sechste das Kommando. Es gibt keine zusätzliche Spalte wie in "/etc/crontab", die den username angibt, unter dem das Kommando laufen soll, denn das Kommando läuft immer unter der User-ID des Inhabers der jeweiligen Tabelle. Wichtig ist auch: hinter JEDER Zeile ein Newline-Zeichen => ENTER drücken !!!

Bei mir hier unter Debian hat das gerade funktioniert. Vielleicht ist unter SuSE wieder etwas anders. Ich kann zu Hause noch mal nachsehen, wenn es immer noch nicht klappt. Laß hören !


--------------------
Bis dann Martin
PM
Top
Tekbaron
Geschrieben am: Mittwoch, 06.März 2002, 12:54 Uhr


Leader
********

Gruppe: [-bmb-]Admin
Beiträge: 2385
Mitgliedsnummer.: 12
Mitglied seit: 2001-03-07




Also wie gesagt wenn ich eine Crontab für den user anlege wird sie zwar in /var/spool/cron/tabs/user angelegt aber nicht abgearbeitet ????


--------------------
mfg Tekbaron Leader [-bmb-] Clan

user posted image

user posted image

user posted image
PMUsers WebsiteICQ
Top
Martin
Geschrieben am: Donnerstag, 07.März 2002, 10:04 Uhr


KillingSpree
****

Gruppe: [-bmb-]Points
Beiträge: 130
Mitgliedsnummer.: 5
Mitglied seit: 2001-06-19




Hi Jörg !

Hm, seltsam. Dumme Frage: das in der Cron-Tabelle angegebene Kommando existiert und ist ausführbar für diesen User ?

Ich gucke auch nochmal zu Hause nach, ob SuSE da etwas anderes macht.


--------------------
Bis dann Martin
PM
Top
Tekbaron
Geschrieben am: Donnerstag, 14.März 2002, 13:38 Uhr


Leader
********

Gruppe: [-bmb-]Admin
Beiträge: 2385
Mitgliedsnummer.: 12
Mitglied seit: 2001-03-07




Vergiss es ich hatte einen fehler gemacht nun funkt datt  :D


--------------------
mfg Tekbaron Leader [-bmb-] Clan

user posted image

user posted image

user posted image
PMUsers WebsiteICQ
Top
Tekbaron
Geschrieben am: Freitag, 27.Februar 2004, 16:53 Uhr


Leader
********

Gruppe: [-bmb-]Admin
Beiträge: 2385
Mitgliedsnummer.: 12
Mitglied seit: 2001-03-07




Meh kann mir mal jemand erklären was das heissen soll ?

1-46/15 * * * * /root/bla


--------------------
mfg Tekbaron Leader [-bmb-] Clan

user posted image

user posted image

user posted image
PMUsers WebsiteICQ
Top
Frank
Geschrieben am: Freitag, 27.Februar 2004, 19:52 Uhr


Rampage
******

Gruppe: [-bmb-]Rootserver
Beiträge: 695
Mitgliedsnummer.: 2
Mitglied seit: 2001-03-07




"führe alle 15 Minuten im Zeitraum 1. bis 46. Minute jeder Stunde root/bla aus"

* */2 * * *

würde z.B. bedeuten, alle 2 Stunden ausführen.



--------------------
user posted image
PMEmail PosterUsers Website
Top
Tekbaron
Geschrieben am: Freitag, 27.Februar 2004, 23:18 Uhr


Leader
********

Gruppe: [-bmb-]Admin
Beiträge: 2385
Mitgliedsnummer.: 12
Mitglied seit: 2001-03-07




mit diesem 1-46 komme ich irgent wie nett klar, das script geht jettz überings nen return bei crontab editieren vergessen


--------------------
mfg Tekbaron Leader [-bmb-] Clan

user posted image

user posted image

user posted image
PMUsers WebsiteICQ
Top
Frank
Geschrieben am: Sonntag, 07.März 2004, 16:13 Uhr


Rampage
******

Gruppe: [-bmb-]Rootserver
Beiträge: 695
Mitgliedsnummer.: 2
Mitglied seit: 2001-03-07




Etwas einfacher könnte man ja auch
1,15,45 * * * /root/irgendwas
schreiben


--------------------
user posted image
PMEmail PosterUsers Website
Top
Blondie
Geschrieben am: Freitag, 25.Juni 2004, 14:27 Uhr


Unregistered










Hi

ich habe auch ein Problem, der cron macht einfach nicht was ich ihm sage. Ich kann auch keine cron.allow Datei anlegen, weil er dann meckert. Ich habe eine crontab-Datai geschrieben, aber er führt es nicht aus. Kann mir hier bitte jemand helfen?
Top
Tekbaron
Geschrieben am: Freitag, 25.Juni 2004, 14:30 Uhr


Leader
********

Gruppe: [-bmb-]Admin
Beiträge: 2385
Mitgliedsnummer.: 12
Mitglied seit: 2001-03-07




Schreib doch mal deine crontab hier rein. Vieleicht kann man ja dann schon was sehen.


--------------------
mfg Tekbaron Leader [-bmb-] Clan

user posted image

user posted image

user posted image
PMUsers WebsiteICQ
Top
Guest
Geschrieben am: Freitag, 25.Juni 2004, 15:55 Uhr


Unregistered










SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

05 * * * * echo hallo

Eigentlich ganz einfach. Ich habe doch kein Fehler drin oder?
Top
Tekbaron
Geschrieben am: Freitag, 25.Juni 2004, 17:44 Uhr


Leader
********

Gruppe: [-bmb-]Admin
Beiträge: 2385
Mitgliedsnummer.: 12
Mitglied seit: 2001-03-07




QUOTE (Guest @ 25.6.2004, 15:55)
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

05 * * * * echo hallo

Eigentlich ganz einfach. Ich habe doch kein Fehler drin oder?

Naja was macht diese ding echo hallo auf die konsole auf der es läuft, nur die kannst du doch garnet sehen, also weist du nicht wirklich ob das ding nicht vieleicht doch läuft. mach mal bitte ein

CODE
05 * * * * touch $HOME/Hallo


Und schau obs in deinem Home Verzeichnis eine Datei Hallo nach 5 min gibt.


--------------------
mfg Tekbaron Leader [-bmb-] Clan

user posted image

user posted image

user posted image
PMUsers WebsiteICQ
Top
Worldoffe
Geschrieben am: Freitag, 27.August 2004, 19:17 Uhr


Unregistered










HALLO!

GANZ WICHTIGE FRAGE AN EUCH: Ich habe einen server mit root-zugriff. UNd habe über die konsole eine conjob-tabelle geöffnet. Wie kann ich diese wieder schließen?? gruebel.gif

Worldoffe
Top

Topic OptionsSeiten:12 Reply to this topicStart new topicStart Poll