Anzeige:
Ergebnis 1 bis 13 von 13

Thema: Cronjob der nur jeden ersten Sonntag im Monat läuft !

  1. #1
    Registrierter Benutzer
    Registriert seit
    Nov 2003
    Beiträge
    54

    Cronjob der nur jeden ersten Sonntag im Monat läuft !

    Hallo,

    kann mir jemand sagen wie ich nen Cronjob anlege der nur jeden ersten Sonntag im Monat läuft ? Ich bekomme das net hin ! :-)

    Gruß Euro.

  2. #2
    404 - Title not found Avatar von LKH
    Registriert seit
    Jun 1999
    Ort
    Jena
    Beiträge
    3.709
    Hi,

    nur mit einem cronjob geht das IMHO nicht. Ich würde foglendes machen (wenn es wirklich sein muss, dass es wirklich der erste Sonnatg im Monat sein soll):

    1. cornjob anlegen für den 1. bis 6. jeden Monats, der ein Skript aufruft
    2. in diesem Skript aus dem aktuellen Datum den Tag greppen; wenn Sonntag, dann ausführen, ansonsten beenden.

    Hoffe es hilft.

    LKH
    freedom is just another word for nothing left to loose ...

  3. #3
    Moderator Avatar von taylor
    Registriert seit
    Dec 2000
    Ort
    Mannheim
    Beiträge
    5.618
    Code:
    0 0 1,2,3,4,5,6,7 * 7   /bin/false
    Läuft am 1. bis 7. des Monats, wenn es ein Sonntag ist.
    Debian GNU/Linux Sid, KDE, Kernel 2.6.10-as6, XFS - Richtig Fragen stellen

    Besucht uns im IRC auf irc.linuxforen.de in #linuxforen.de

  4. #4
    Happy Hippo
    Registriert seit
    Aug 1999
    Ort
    904xx Nermberch
    Beiträge
    942
    Zitat Zitat von taylor
    Code:
    0 0 1,2,3,4,5,6,7 * 7   /bin/false
    Läuft am 1. bis 7. des Monats, wenn es ein Sonntag ist.
    Und warum dann nicht gleich so?
    Code:
    0 0 1-7 * 7   /bin/false
    Pingu

  5. #5
    Moderator Avatar von taylor
    Registriert seit
    Dec 2000
    Ort
    Mannheim
    Beiträge
    5.618
    Zitat Zitat von Pingu
    Und warum dann nicht gleich so?
    Weil ich faul bin, die crontab Syntax auch nach etlichen Jahren noch nicht immer im Kopf habe, und weil ich deshalb kcron verwende, welcher das halt so ausgibt.

    Dein Weg sieht natürlich deutlich lesbarer aus.
    Debian GNU/Linux Sid, KDE, Kernel 2.6.10-as6, XFS - Richtig Fragen stellen

    Besucht uns im IRC auf irc.linuxforen.de in #linuxforen.de

  6. #6
    Happy Hippo
    Registriert seit
    Aug 1999
    Ort
    904xx Nermberch
    Beiträge
    942
    Zitat Zitat von taylor
    Weil ich faul bin, die crontab Syntax auch nach etlichen Jahren noch nicht immer im Kopf habe, und weil ich deshalb kcron verwende, welcher das halt so ausgibt.
    *pinguschäm* mußte auch erst mit man 5 crontab nachsehen.

    Pingu

  7. #7
    Registrierter Benutzer
    Registriert seit
    Jul 2008
    Beiträge
    146
    Zitat Zitat von taylor Beitrag anzeigen
    Code:
    0 0 1,2,3,4,5,6,7 * 7   /bin/false
    Läuft am 1. bis 7. des Monats, wenn es ein Sonntag ist.
    Läuft am ersten bis siebten des Monats jeden Tag und im restlichen Monat zusätzlich auch an Sonntagen.

    Geht leider so nicht.

    LKH hat recht.

    Man kann aber mit:
    Code:
     [ $(date +%d) -le 7 ] &&
    Vor das Skript prüfen, ob es der erste bis siebte ist und im Cron nur sonntags eintragen also:
    Code:
     0 0 * * 7 ... [ $(date +%d) -le 7 ] && mein_skript
    So hat es bei mir geklappt.

  8. #8
    Who's Johnny? Avatar von L00NIX
    Registriert seit
    Mar 2004
    Beiträge
    1.229
    Hi,

    Im Cron-Skript den Tag abfragen:
    Code:
    #!/bin/bash
    
    # hier evtl. PATH festlegen
    
    # Filterung ueber Wochentag
    DOW=$( LANG=C date "+%a" )
    case ${DOW} in
        Sun)
            # Es ist Sonntag: Tu was
            ;;
        *)
            # andere Wochentage: nichts tun
            exit 0
            ;;
    esac
    
    ... hier geht's weiter
    Und in Crontab dann folgende Zeile eintragen (hier: 6:55 Uhr jeden 1. Sonntag im Monat)
    Code:
    55 6 1-7 * * root /pfad/zum/skript
    Gruß
    L00NIX
    Geändert von L00NIX (23.07.15 um 19:38 Uhr)

  9. #9
    Who's Johnny? Avatar von L00NIX
    Registriert seit
    Mar 2004
    Beiträge
    1.229
    Hi,

    Im Cron-Skript den Tag abfragen:
    Code:
    #!/bin/bash
    
    # hier evtl. PATH festlegen
    
    # Filterung ueber Wochentag
    DOW=$( LANG=C date "+%a" )
    case ${DOW} in
        Sun)
            # Es ist Sonntag: Tu was
            ;;
        *)
            # andere Wochentage: nichts tun
            exit 0
            ;;
    esac
    
    ... hier geht's weiter
    Und in Crontab dann folgende Zeile eintragen (hier: 6:55 Uhr jeden 1. Sonntag im Monat)
    Code:
    55 6 1-7 * * root /pfad/zum/skript
    Gruß
    L00NIX

  10. #10
    Registrierter Benutzer
    Registriert seit
    Jul 2008
    Beiträge
    146
    Das ist keine optimale Lösung weil damit das Skript spezialisiert wird und nicht mehr für verschiedene Aufgaben verwendet werden kann. In meinem Fall ginge das so nicht. Ich bräuchte dann sieben verschiedene Skripte.

  11. #11
    Banned
    Registriert seit
    Feb 2005
    Beiträge
    1.151
    Mal sowas probieren: 0 0 1 ? 1/1 SUN#1 *

    Sollte um 1:00Uhr jeden ersten Sonntag laufen.
    (Hab ich nicht probiert, abba selbst gefunden im Netz)

  12. #12
    Who's Johnny? Avatar von L00NIX
    Registriert seit
    Mar 2004
    Beiträge
    1.229
    Das ist keine optimale Lösung weil damit das Skript spezialisiert wird und nicht mehr für verschiedene Aufgaben verwendet werden kann. In meinem Fall ginge das so nicht. Ich bräuchte dann sieben verschiedene Skripte.
    Dann Benutze das Skript einfach als Wrapper für das "richtige" Skript:
    Code:
    #!/bin/bash
    
    # Filterung ueber Wochentag
    DOW=$( LANG=C date "+%a" )
    case ${DOW} in
        Sun)
            # Es ist Sonntag
            exit 0
            ;;
        *)
            # andere Wochentage
            exit 1
            ;;
    esac
    und dann die Zeile in der Crontab:
    Code:
    55 6 1-7 * * root /pfad/zum/wrapper && /dein/Skript
    Man kann auch die ganze Logik wie in den vorherigen Beiträgen in die Crontab codieren, ich finde das aber extrem unschön.

    Gruß
    L00NIX
    Geändert von L00NIX (24.07.15 um 16:32 Uhr)

  13. #13
    Registrierter Benutzer Avatar von ThorstenHirsch
    Registriert seit
    Nov 2002
    Beiträge
    6.558
    Hier noch eine Variante ohne wrapper-Skript:
    Code:
    55 6 1-7 * * [ "$(date '+\%a')" == "Sun" ] && /dein/skript
    Prüft quasi beim Cron-Aufruf, welcher der ersten 7 Tage des Monats ein Sonntag ist.
    ¡Nuestro amigo... el Computador!

Ähnliche Themen

  1. scp und cronjob problem
    Von rofflox im Forum Anwendungen Allgemein, Software
    Antworten: 3
    Letzter Beitrag: 22.04.04, 11:01
  2. Cronjob soll am dritten Werktag starten?
    Von Radiohead im Forum Linux Allgemein
    Antworten: 1
    Letzter Beitrag: 16.02.04, 07:52
  3. problem mit cronjob
    Von native im Forum System installieren und konfigurieren
    Antworten: 0
    Letzter Beitrag: 24.10.03, 14:48
  4. fli4l router per cronjob neustarten
    Von n0oL3i im Forum Anbindung an die Aussenwelt
    Antworten: 4
    Letzter Beitrag: 21.10.03, 11:43
  5. Probleme mit Cronjob und icecast
    Von FunnyDingo im Forum Linux Allgemein
    Antworten: 0
    Letzter Beitrag: 02.05.03, 13:55

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •