GNU/Linux >> LINUX-Kenntnisse >  >> Linux

CronJob alle 25 Minuten

Der Befehl in crontab wird mit /bin/sh ausgeführt so können Sie die arithmetische Erweiterung verwenden, um zu berechnen, ob die aktuelle Minute modulo 25 gleich Null ist:

*/5 * * * * [ $(( $(date +\%s) / 60 \% 25 )) -eq 0 ] && your_command

cron wird diesen gesamten Eintrag alle 5 Minuten ausführen, aber nur wenn die aktuelle Minute (in Minuten seit der Epoche) modulo 25 gleich Null ist, wird your_command ausgeführt .

Wie andere angemerkt haben, ist 1 Tag nicht gleichmäßig durch 25 Minuten teilbar, daher wird dies nicht zu your_command führen jeden Tag zur gleichen Zeit laufen, aber es wird laufen alle 25 Minuten.


Am besten läufst du mit 20 oder 30 Minuten.

Am besten ist es, alle 5 Minuten auszulösen und dann eine interne Zählung oder einen Zeitstempel beizubehalten und bei jedem 5. Auslöser auszuführen, oder wenn seit der letzten Ausführung 25 Minuten vergangen sind.

Komplizierter wäre es, die richtigen Zeiten für einen Tag zu berechnen, beginnend um Mitternacht, und den Fehler am Ende des Tages zu akzeptieren. Dazu müsste der Crontab-Eintrag für die verschiedenen Stunden dupliziert werden.

Komplizierter wäre es, die Zeiten für einen ganzen Monat zu berechnen, was viele Kopien des crontab-Eintrags erfordern würde, um die verschiedenen Kombinationen abzudecken.

Schließlich könnten Sie Ihren eigenen Always-On-Daemon implementieren und diesen die Zeitplanung erledigen lassen.


Ich habe keine direkte Erfahrung damit, aber fcron scheint sofort zu tun, was Sie wollen. Gemäß seiner Dokumentation können Sie Frequenzen angeben:

# Get our mails every 30 minutes 
@ 30 getmails -all 

# make some security tests every 48 hours of system up time, 
# force a mail to be sent to root even if there is no output 
@mailto(root),forcemail 2d /etc/security/msec/cron-sh/security.sh

Linux
  1. MySQLdump ohne Passwort im Cronjob

  2. Wie man Cron alle 5 Minuten, Sekunden, Stunden, Tage, Monate ausführt

  3. Wie führe ich alle 3 Monate einen Cron-Job aus?

  4. Wie führe ich Cron-Jobs jeden Tag zu einer bestimmten Stunde aus?

  5. Cronjob läuft alle zwei Wochen, am Samstag, beginnend an diesem Samstag

So führen Sie einen Linux-Befehl für immer alle X Sekunden aus oder wiederholen ihn

Cron-Jobs alle 5, 10 oder 15 Minuten ausführen

So führen Sie für immer alle X Sekunden einen Linux-Befehl aus

So führen Sie jede Woche am Sonntag einen Crontab-Job aus

Crontab-Beispiel – alle 5 Minuten

Wie würde ich einen Cron-Job dazu bringen, alle 30 Minuten ausgeführt zu werden?