Cronjob alle 50 Minuten

Dieses Thema im Forum "Debian/Ubuntu/Knoppix" wurde erstellt von stäubel, 14.07.2008.

  1. #1 stäubel, 14.07.2008
    stäubel

    stäubel Doppel-As

    Dabei seit:
    05.10.2006
    Beiträge:
    111
    Zustimmungen:
    0
    Ort:
    Schweiz
    Hallo zusammen

    Ist zwar eine blöde Frage, aber wie würdet ihr einen Cronjob machen,
    der alle 50 Minuten was ausführt?

    Meine Gedanken:

    Code:
    */50 *  *   *   *  würde immer jede und 50 Minuten nach jeder vollen Stunde ausgeführt
    
    50 *  *  *  * würde immer 50 Minuten nach jeder vollen Stunde ausgeführt
    Ich möchte aber, dass er wirklich allle 50 Minuten was ausführt,
    nicht nach jeder vollen Stunde 50 Minuten.

    Vielleicht sollte ich einfach Feierabend machen und es
    morgen nochmals probieren :-)


    Merci.

    Grüsse Stäubel
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Goodspeed, 14.07.2008
    Goodspeed

    Goodspeed Foren Gott
    Moderator

    Dabei seit:
    21.04.2004
    Beiträge:
    4.165
    Zustimmungen:
    1
    Ort:
    Dresden
    Das erste Statment ist korrekt ...
     
  4. #3 stäubel, 15.07.2008
    stäubel

    stäubel Doppel-As

    Dabei seit:
    05.10.2006
    Beiträge:
    111
    Zustimmungen:
    0
    Ort:
    Schweiz
    Das dachte ich eigentlich auch. Jedefalls hatte ich das mal so gelernt.

    Aber bei diesem Cronjob

    Code:
    */50 *  *  *  *  echo Test | mail -s "Test" test@mail.ch
    bekomme ich in folgenden Zeitabständen ein Mail:
    (Anstatt alle 50 min)

    Code:
    Von     Betreff    Erhalten    Größe	
    root    Test        10:00      4 KB		
    root    Test        09:50      4 KB		
    root    Test        09:00      4 KB		
    root    Test        08:50      4 KB		
    root    Test        08:00      4 KB		
    root    Test        07:50      4 KB		
    root    Test        07:00      4 KB		
    root    Test        06:50      4 KB		
    root    Test        06:00      4 KB		
    root    Test        05:50      4 KB		
    root    Test        05:00      4 KB		
    root    Test        04:50      4 KB		
    root    Test        04:00      4 KB		
    root    Test        03:50      4 KB		
    root    Test        03:00      4 KB		
    root    Test        02:50      4 KB		
    root    Test        02:00      4 KB		
    root    Test        01:50      4 KB		
    root    Test        01:00      4 KB		
    root    Test        00:50      4 KB		
    root    Test        00:00      4 KB
    Grüsse Stäubel
     
  5. #4 Gott_in_schwarz, 15.07.2008
    Zuletzt bearbeitet: 15.07.2008
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    Ich hab mal
    Code:
    */3 * * * * root date +%H:%m:%S >> /home/user/cron.test
    In meine crontab gepackt und warte nun, aber bisher (ca. ne viertel Stunde jetzt gewartet oder so) kam noch nix...
    Wahrscheinlich kommts erst um 12:00 und dann nochmal um 12:03.

    Vielleicht liegst ja auch an dem verwendeten crondaemon?
    "ps aux|grep -i cron" sagt einfach "cron". "man cron" sagt
    :?

    Edit: k, statt "date +%H:%m:%S" muss es natürlich "date +%H:%M:%S" heißen. (%m gibt den Monat an...)
    ANYWHO, das ändert nix am Problem, dass die Zeile der crontab nicht das tut was man (laut Tutorials/Manpages) von ihr erwarten würde...

    Mal die Interessanten Zeilen von "man crontab" dazu:
    Edit2: Meh, pipes funktionieren in den Kommandos der crontab aber keine STDOUT-Redirection mit ">>"? Hmz, mit einem (Bash-)Script scheints zu "funzen". Wobei das Problem des Threaderstellers damit ja nach wie vor besteht.
    @TE: Du könntest ja alle 10 Minuten ein Script per cron starten, das prüft, ob die verstrichene Zeit an Minuten modulo 50 0 ergibt und dann das "eigentliche" Script startet (oder so). :0
    Edit3:
    Zun Beispiel das an den Anfang des Scripts packen und dann das Script per cron alle 10 Minuten ausführen lassen:
    Code:
    #!/bin/bash
    
    SECONDS_NOW=$(date +%s)
    
    INTERVAL=$((50 * 60)) # 50 minutes in seconds...
    
    [[ $((SECONDS_NOW % INTERVAL)) -ge 15 ]] && exit 1
    # 15 seconds tolerance
    Sollte eigentlich funktionieren. (Nämlich dann, wenn %s zur vollen Stunde eine "runde" Zahl ist. Sollte es aber eigentlich. "seconds since 1970-01-01 00:00:00 UTC")
     
  6. #5 Goodspeed, 15.07.2008
    Goodspeed

    Goodspeed Foren Gott
    Moderator

    Dabei seit:
    21.04.2004
    Beiträge:
    4.165
    Zustimmungen:
    1
    Ort:
    Dresden
    *arg* ... stimmt. Ein generelles "aller x Minuten" gibt es nicht ...
     
  7. #6 stäubel, 17.07.2008
    stäubel

    stäubel Doppel-As

    Dabei seit:
    05.10.2006
    Beiträge:
    111
    Zustimmungen:
    0
    Ort:
    Schweiz
    Vielen Dank für die Bemühungen und Vorschläge!!!

    Das Script werde ich noch testen.

    Aber wenn ich den Code so anschaue, gibt das Script glaube immer true am System zurück.

    Denn wenn die Zeitangaben gut teilbar sind (fasst ohne Rest), wird $((SECONDS_NOW % INTERVAL)) -ge 15 ]] = true
    Wenn die Zeitangaben schlecht teilbar sind (mit viel Rest), wird $((SECONDS_NOW % INTERVAL)) -ge 15 ]] = false jedoch durch && exit 1 auch wieder true.

    Aber werde es noch testen.

    Jedenfalls machte ich einen Überlegungsfehler bei Cron,
    denn bei folgender Angabe */X * * * * muss X auf die
    Stunde aufgehen.
    Cron ist also definitiv nicht vorgesehen für solche Zeitabstände.

    Schade eigentlich :headup:

    Vielen Dank für eure Hilfe.

    Grüsse Stäubel
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema: Cronjob alle 50 Minuten
Besucher kamen mit folgenden Suchen
  1. linux crontab echo aller 10 minuten anzeigen

Die Seite wird geladen...

Cronjob alle 50 Minuten - Ähnliche Themen

  1. Bräuchte Hilfe bei Backupscript mittels Bash und cronjob

    Bräuchte Hilfe bei Backupscript mittels Bash und cronjob: Es soll für bestimmte Ordner Archivierung aller Dateien(Logfiles), die älter als 30 Tage sind machen. Am besten einmal täglich nachts irgendwann....
  2. Cronjob

    Cronjob: Hallo Bin mir nicht sicher ob dass so Möglich ist... Ich möchte dass ein Job von 02:00 Uhr Nachts bis 03:00 Uhr Nachts NICHT läuft. *...
  3. Cronjob um Dateien und Ordner die älter als 7 Tage sind löschen

    Cronjob um Dateien und Ordner die älter als 7 Tage sind löschen: Hallo, ich habe auf einem Server einen HTTP File-Explorer installiert (AjaXplorer), auf dem User Dateien hochladen und verschicken können....
  4. Cronjob mit Root-Rechten

    Cronjob mit Root-Rechten: Hallo zusammen. Ich habe ein Backup-Skript (Shell-Skript) erstellt, das alle relevanten Daten via ssh auf einen Server lädt. Das Skript wird...
  5. script wird von cronjob nicht korrekt ausgeführt - Centos 5

    script wird von cronjob nicht korrekt ausgeführt - Centos 5: Guten Morgen, und hallo ins Forum. Ich habe ein Problem mit meinem Sicherungsserver: ich möchte zur täglichen inkrimentellen Sicherung...