Hi ich habe hier etwas das mich anstengt
Ich muss einen Cronjob ausführen und das jede Minute. Allerdings von 3:00 Morgens bis 1:00 Morgens am nächsten Tag. Von 1:00 bis 3:00 soll er nicht laufen.
Kann ich sowas in der Crontab definieren?
Cronjob spezial
- minimike
- Beiträge: 5616
- Registriert: 26.03.2003 02:21:19
- Lizenz eigener Beiträge: neue BSD Lizenz
- Wohnort: Köln
-
Kontaktdaten:
Cronjob spezial
"Lennart Poettering is one of those typical IT leaders..." "like Linus Torvalds and Theo de Raadt?" "more like Bozo the Clown" After all, now a good employee of Microsoft
Re: Cronjob spezial
Ja, z.B. mit einem if im Befehl.
Re: Cronjob spezial
* 0-1,3-24 * * * foo muesste das tun, vielleicht ist der Cron sogar so intelligent und erkennt 3-1.
Was du nicht schreibst, aber vermutlich dein Problem ist: Der "Starttag" ist nicht *, sondern ein ganz bestimmter. Entsprechend gilt der obige Job dann fuer den kompletten Tag eins ausser 1-3 Uhr, Tag zwei wird nicht beruecksichtigt. Da musst du wohl zwei machen, entsprechend fuer Tag eins und zwei, mit demselben Befehl hinten (oder einen echten Daemon bauen, der nicht minuetlich das Syslog vollspammt).
Gruss Cae
Was du nicht schreibst, aber vermutlich dein Problem ist: Der "Starttag" ist nicht *, sondern ein ganz bestimmter. Entsprechend gilt der obige Job dann fuer den kompletten Tag eins ausser 1-3 Uhr, Tag zwei wird nicht beruecksichtigt. Da musst du wohl zwei machen, entsprechend fuer Tag eins und zwei, mit demselben Befehl hinten (oder einen echten Daemon bauen, der nicht minuetlich das Syslog vollspammt).
Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
- minimike
- Beiträge: 5616
- Registriert: 26.03.2003 02:21:19
- Lizenz eigener Beiträge: neue BSD Lizenz
- Wohnort: Köln
-
Kontaktdaten:
Re: Cronjob spezial
das mit 3-1 hatte ich zuerst probiert das geht aber nicht
* 3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,0 * * * /var/www/intranet-live/command.sh export_queue export -a 1>/dev/null 2>/dev/null
läuft. Warum aber
* 3-1 * * * /var/www/intranet-live/command.sh export_queue export -a 1>/dev/null 2>/dev/null
Nicht läuft verstehe ich gerade nicht.
* 3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,0 * * * /var/www/intranet-live/command.sh export_queue export -a 1>/dev/null 2>/dev/null
läuft. Warum aber
* 3-1 * * * /var/www/intranet-live/command.sh export_queue export -a 1>/dev/null 2>/dev/null
Nicht läuft verstehe ich gerade nicht.
"Lennart Poettering is one of those typical IT leaders..." "like Linus Torvalds and Theo de Raadt?" "more like Bozo the Clown" After all, now a good employee of Microsoft
Re: Cronjob spezial
Vermutlich weil du eine andere Implementierung von Cron hast, die das halt nicht kann.minimike hat geschrieben:Warum aber
* 3-1 * * * /var/www/intranet-live/command.sh export_queue export -a 1>/dev/null 2>/dev/null
Nicht läuft verstehe ich gerade nicht.
Use ed once in a while!
Re: Cronjob spezial
Habe mal kurz den Quellcode von CRON gelesen. Interessant ist wohl die Datei "entry.c" und dort der Auszug:
Irgendwie wird daraus wohl abgefangen, dass bei "a-b" b nicht kleiner als a sein kann.
Code: Alles auswählen
num2 = high;
Code: Alles auswählen
ch = get_number(&num2, low, names, ch, file);
Code: Alles auswählen
if (num1 < low || num1 > high || num2 < low || num2 > high)
return EOF;
/* range. set all elements from num1 to num2, stepping
* by num3. (the step is a downward-compatible extension
* proposed conceptually by bob@acornrc, syntactically
* designed then implmented by paul vixie).
*/
for (i = num1; i <= num2; i += num3)
if (EOF == set_element(bits, low, high, i))
return EOF;
return ch;
Re: Cronjob spezial
Was spricht gegen Liffis Vorschlag mit einem vom Cron aufgerufenen (Wrapper-)Script das die Zeit prüft und je nach Ergebnis den eigentlichen Job anstößt oder eben nicht?