GNU/Linux >> Linux Esercitazione >  >> Linux

CronJob ogni 25 minuti

Il comando in crontab viene eseguito con /bin/sh quindi puoi usare l'espansione aritmetica per calcolare se il minuto corrente modulo 25 è uguale a zero:

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

cron eseguirà l'intera voce ogni 5 minuti, ma solo se il minuto corrente (in minuti dall'epoca) modulo 25 è uguale a zero verrà eseguito your_command .

Come altri hanno sottolineato, 1 giorno non è divisibile uniformemente per 25 minuti, quindi questo non causerà your_command da eseguire tutti i giorni alla stessa ora, ma lo farà eseguire ogni 25 minuti.


La soluzione migliore è correre a 20 o 30 minuti.

La cosa migliore da fare potrebbe essere attivare ogni 5 minuti, quindi tenere un conteggio interno o un timestamp ed eseguire ogni 5 trigger o se sono trascorsi 25 minuti dall'ultima esecuzione.

Più complicato sarebbe calcolare gli orari corretti per un giorno, a partire da mezzanotte, e accettare l'errore alla fine della giornata. Ciò comporterebbe la duplicazione della voce crontab nelle diverse ore.

Più complicato di così sarebbe calcolare i tempi per un intero mese, il che richiederebbe molte copie della voce crontab per coprire le diverse combinazioni.

Finalmente potresti implementare il tuo demone sempre attivo e fare in modo che si occupi della pianificazione.


Non ho esperienza diretta con esso, ma fcron sembra fare quello che vuoi fuori dagli schemi. Secondo la sua documentazione è possibile specificare le frequenze:

# 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. Come eseguire o ripetere un comando Linux ogni X secondi per sempre

  2. Linux:esegui script ogni 30 minuti con Systemd?

  3. Voce di Crontab sospetta che esegue "xribfa4" ogni 15 minuti?

  4. MySQLdump senza password in cronjob

  5. Come eseguire cron job in un'ora specifica ogni giorno?

Come eseguire Cron Jobs ogni 5, 10 o 15 minuti

Come eseguire un comando Linux ogni X secondi per sempre

Come eseguire un lavoro Crontab ogni settimana la domenica

Esempio Crontab – ogni 5 minuti

Come posso ottenere un cron job da eseguire ogni 30 minuti?

Cronjob viene eseguito ogni due settimane, il sabato, a partire da questo sabato