Liebe Liste, das Problem ist nicht wirklich ein OS Problem (hoffentlich), aber ich gehe fest davon aus, dass hier viele sind, die die Lösung aus dem Kopf wissen. In meiner Crontab steht folgende Zeile: 00 10 1,2,3,4,5,6,7 * 2 /usr/bin/rsnapshot -c /home/jan/Cron/rsnapshot.conf monthly Sie soll heißen, um 10:00 Uhr am ersten Dienstag des Monats soll dieses Skript ausgeführt werden. Nun bekomme ich aber an ganz anderen Wochentagen, z.B. heute, eine Email mit dem Output dieses Cronjobs. Wie kann das sein? In einer früheren Version hatte ich dort "00 10 1-7 * 2" als Angabe stehen. Gleiches Ergebnis. Das Skript wird _auch_ am ersten Dienstag des Monats ausgeführt, aber eben nicht nur. Wer kennt den Grund? Viele Grüße Jan -- _________________________________________________________________ Jan Handwerker http://www.imk-tro.kit.edu/14_jan.handwerker.php
Hi Jan, Ich würde mal sagen, dass Du Syntax falsch verstanden hast: Die erste Zahl (0-59) in der Zeile gibt die Minute an zu der das Kommando gestartet werden soll. Die zweite (0-23) die Stunde Die dritte (1-31) den Tag im Monat - ACHTUNG 29 - 31 gibt es nicht in jedem Monat. Die vierte den (1-12) den Monat Die fünfe den Wochentag (0-7) wobei 0 UND 7 für den Sonntag stehen. Deine Angabe würde den rsnapshot also am 1., 2., ... und 7. jeden Monats und an jedem Dienstag durchführen. Grüße Thorsten Am 05.03.20 um 11:15 schrieb Handwerker, Jan (IMK):
Liebe Liste,
das Problem ist nicht wirklich ein OS Problem (hoffentlich), aber ich gehe fest davon aus, dass hier viele sind, die die Lösung aus dem Kopf wissen.
In meiner Crontab steht folgende Zeile:
00 10 1,2,3,4,5,6,7 * 2 /usr/bin/rsnapshot -c /home/jan/Cron/rsnapshot.conf monthly
Sie soll heißen, um 10:00 Uhr am ersten Dienstag des Monats soll dieses Skript ausgeführt werden.
Nun bekomme ich aber an ganz anderen Wochentagen, z.B. heute, eine Email mit dem Output dieses Cronjobs. Wie kann das sein? In einer früheren Version hatte ich dort "00 10 1-7 * 2" als Angabe stehen. Gleiches Ergebnis. Das Skript wird _auch_ am ersten Dienstag des Monats ausgeführt, aber eben nicht nur.
Wer kennt den Grund?
Viele Grüße Jan
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo Thorsten, Am 05.03.20 um 11:27 schrieb Thorsten Marquardt:
Deine Angabe würde den rsnapshot also am 1., 2., ... und 7. jeden Monats und an jedem Dienstag durchführen.
das kann ich mir nicht vorstellen. Sonst würde doch die Angabe 00 08 * * * den Job immer zur vollen Stunde und zu jeder Minute der 8. Stunde ausführen. Es müssen (nach meinem Verständnis) immer alle nicht durch * angegebenen Werte stimmen, damit etwas ausgeführt wird. Irre ich mich? Gruß Jan -- _________________________________________________________________ Jan Handwerker http://www.imk-tro.kit.edu/14_jan.handwerker.php
Am 05.03.20 um 11:44 schrieb Handwerker, Jan (IMK):
Hallo Thorsten,
Am 05.03.20 um 11:27 schrieb Thorsten Marquardt:
Deine Angabe würde den rsnapshot also am 1., 2., ... und 7. jeden Monats und an jedem Dienstag durchführen. das kann ich mir nicht vorstellen. Sonst würde doch die Angabe
00 08 * * *
den Job immer zur vollen Stunde und zu jeder Minute der 8. Stunde ausführen. Es müssen (nach meinem Verständnis) immer alle nicht durch * angegebenen Werte stimmen, damit etwas ausgeführt wird. Irre ich mich?
Gruß Jan Nein. Täglich um 8:00!
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hi Jan, Am 05.03.20 um 11:44 schrieb Handwerker, Jan (IMK):
Hallo Thorsten,
Am 05.03.20 um 11:27 schrieb Thorsten Marquardt:
Deine Angabe würde den rsnapshot also am 1., 2., ... und 7. jeden Monats und an jedem Dienstag durchführen. das kann ich mir nicht vorstellen. Sonst würde doch die Angabe
00 08 * * *
den Job immer zur vollen Stunde und zu jeder Minute der 8. Stunde ausführen. Es müssen (nach meinem Verständnis) immer alle nicht durch * angegebenen Werte stimmen, damit etwas ausgeführt wird. Irre ich mich?
Gruß Jan
Schau mal hier: http://www.netzmafia.de/skripten/unix/unix4.html -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo Thorsten, Am 05.03.20 um 12:10 schrieb Thorsten Marquardt:
Am 05.03.20 um 11:44 schrieb Handwerker, Jan (IMK):
Am 05.03.20 um 11:27 schrieb Thorsten Marquardt:
Deine Angabe würde den rsnapshot also am 1., 2., ... und 7. jeden Monats und an jedem Dienstag durchführen. das kann ich mir nicht vorstellen. Sonst würde doch die Angabe Schau mal hier:
Du hast tatsächlich recht! Ich habe es jetzt nicht nur bei der Netzmafia gefunden, sondern auch in der Manpage von crontab(5). Am Ende der Beschreibung, direkt vor den Beispielen steht es explizit: Note: The day of a command's execution can be specified in the following two fields — 'day of month', and 'day of week'. If both fields are restricted (i.e., do not contain the "*" character), the command will be run when either field matches the current time. For example, "30 4 1,15 * 5" would cause a command to be run at 4:30 am on the 1st and 15th of each month, plus every Friday. Damit verhalten sich die beiden Tagesangaben anders als die übrigen Angaben. Wie gebe ich denn dann an, dass etwas nur am ersten Dienstag des Monats ausgeführt werden soll? Starte ich einfach jeden Dienstag und frage im Skript ab, ob Monatsanfang ist? Immer am 1. liegt mir zu oft auf einem Wochenende, wo mein Computer aus ist. Thorsten, vielen Dank für das beständige Hinweisen! Gruß Jan -- _________________________________________________________________ Jan Handwerker http://www.imk-tro.kit.edu/14_jan.handwerker.php
Am Do., 5. März 2020 um 12:48 Uhr schrieb Handwerker, Jan (IMK)
Wie gebe ich denn dann an, dass etwas nur am ersten Dienstag des Monats ausgeführt werden soll? Starte ich einfach jeden Dienstag und frage im Skript ab, ob Monatsanfang ist? Immer am 1. liegt mir zu oft auf einem Wochenende, wo mein Computer aus ist.
Cron kann das nicht, Du mußt das in Shell lösen. Etwa so: https://stackoverflow.com/a/19278657/821436 Gruß Martin -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Handwerker, Jan (IMK) schrieb am 05.03.20 um 12:47:
Hallo Thorsten,
Am 05.03.20 um 12:10 schrieb Thorsten Marquardt:
Am 05.03.20 um 11:44 schrieb Handwerker, Jan (IMK):
Am 05.03.20 um 11:27 schrieb Thorsten Marquardt:
Deine Angabe würde den rsnapshot also am 1., 2., ... und 7. jeden Monats und an jedem Dienstag durchführen. das kann ich mir nicht vorstellen. Sonst würde doch die Angabe Schau mal hier:
Du hast tatsächlich recht! Ich habe es jetzt nicht nur bei der Netzmafia gefunden, sondern auch in der Manpage von crontab(5). Am Ende der Beschreibung, direkt vor den Beispielen steht es explizit:
Note: The day of a command's execution can be specified in the following two fields — 'day of month', and 'day of week'. If both fields are restricted (i.e., do not contain the "*" character), the command will be run when either field matches the current time. For example, "30 4 1,15 * 5" would cause a command to be run at 4:30 am on the 1st and 15th of each month, plus every Friday.
Damit verhalten sich die beiden Tagesangaben anders als die übrigen Angaben.
Wie gebe ich denn dann an, dass etwas nur am ersten Dienstag des Monats ausgeführt werden soll? Starte ich einfach jeden Dienstag und frage im Skript ab, ob Monatsanfang ist? Immer am 1. liegt mir zu oft auf einem Wochenende, wo mein Computer aus ist.
00 10 * * 2 [ `/usr/bin/date +%e` -lt 8 ] && /usr/bin/rsnapshot -c /home/jan/Cron/rsnapshot.conf monthly Wenn der Wochentag 2 ist und "date +%e" eine Zahl kleiner 8 (also 1-7) ausgibt, wird gestartet. HDH, Werner --
Hallo Werner, Am 05.03.20 um 13:06 schrieb Werner Flamme:
Handwerker, Jan (IMK) schrieb am 05.03.20 um 12:47:
Wie gebe ich denn dann an, dass etwas nur am ersten Dienstag des Monats ausgeführt werden soll? Starte ich einfach jeden Dienstag und
00 10 * * 2 [ `/usr/bin/date +%e` -lt 8 ] && /usr/bin/rsnapshot -c /home/jan/Cron/rsnapshot.conf monthly
Wenn der Wochentag 2 ist und "date +%e" eine Zahl kleiner 8 (also 1-7) ausgibt, wird gestartet.
auf so eine Lösung war ich auch gerade gekommen. 00 10 1,2,3,4,5,6,7 * * [ $(/usr/bin/date +%u) == 2 ] && /usr/bin/rsnapshot -c /home/jan/Cron/rsnapshot.conf monthly Ist aber schon ein wenig seltsam, dass das cron nicht wirklich alleine kann. Würden die beiden Tages-Angaben nicht oder- sondern und-verknüpft sein, könne man das oder durch zwei fast identische Zeilen erreichen. 0 1 1-7 * * action # die ersten 7 Tage des Monats 0 1 * * 2 action # jeden Dienstag auch Schade dass die falsche Lösung gewählt wurde. Danke für alle Antworten! Ich habe wieder mal was gelernt. Gruß Jan -- _________________________________________________________________ Jan Handwerker http://www.imk-tro.kit.edu/14_jan.handwerker.php
Handwerker, Jan (IMK) schrieb:
Wie gebe ich denn dann an, dass etwas nur am ersten Dienstag des Monats ausgeführt werden soll?
In erster Näherung: 0 8 1-7 * * root [ $( date +%u) = "2" ] && /home/me/mycommand.sh -- Manfred Härtel, DB3HM mailto:Manfred.Haertel@rz-online.de http://rz-home.de/mhaertel -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
participants (5)
-
Handwerker, Jan (IMK)
-
Manfred Haertel, DB3HM
-
Martin Schröder
-
Thorsten Marquardt
-
Werner Flamme