GNU/Linux >> Znalost Linux >  >> Linux

CronJob každých 25 minut

Příkaz v crontab se provede s /bin/sh takže můžete použít aritmetické rozšíření k výpočtu, zda se aktuální minutový modulo 25 rovná nule:

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

cron spustí celý tento záznam každých 5 minut, ale pouze pokud je aktuální minuta (v minutách od epochy) modulo 25 rovna nule, spustí se your_command .

Jak poukázali jiní, 1 den není dělitelný rovnoměrně 25 minutami, takže to nezpůsobí your_command běžet každý den ve stejnou dobu, ale bude spustit každých 25 minut.


Nejlepším řešením je běžet 20 minut nebo 30 minut.

Dalším nejlepším řešením by mohlo být spouštění každých 5 minut a poté ponechat interní počet nebo časové razítko a spustit každé páté spuštění nebo pokud od posledního spuštění uplynulo 25 minut.

Složitější by bylo zjistit správné časy na den počínaje půlnocí a přijmout chybu na konci dne. To by zahrnovalo duplikování záznamu crontab do různých hodin.

Složitější než to by bylo vypočítat časy na celý měsíc, což by vyžadovalo mnoho kopií záznamu crontab k pokrytí různých kombinací.

Konečně byste mohli implementovat svého vlastního vždy na démona a nechat to provést plánování.


Nemám s tím přímou zkušenost, ale zdá se, že fcron po vybalení dělá, co chcete. Podle jeho dokumentace můžete určit frekvence:

# 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. Linux – Spouštět skript každých 30 minut pomocí Systemd?

  2. Podezřelý vstup do Crontabu běží „xribfa4“ každých 15 minut?

  3. Jak spouštět Cron každých 5 minut, sekund, hodin, dnů, měsíců

  1. Jak spustit úlohu cron každou hodinu a 10 minut

  2. Jak nastavit úlohu CRON, aby se spouštěla ​​každých 10 sekund v Linuxu?

  3. jak spustit cron job každé 3 měsíce?

  1. Jak spustit nebo opakovat příkaz Linuxu každých X sekund navždy

  2. MySQLdump bez hesla v cronjob

  3. Jak spustit úlohu cronu každý den v určitou hodinu?