Come programmare un cronjob di due settimane?

crontab (5) definisce i seguenti campi:

field allowed values ----- -------------- minute 0-59 hour 0-23 day of month 1-31 month 1-12 (or names, see below) day of week 0-7 (0 or 7 is Sun, or use names) 

e spiega:

  • come creare un lavoro cron che si esegue il primo giorno del mese
  • Anacrontab specifici per l'utente?
  • Crontab - Configurazione insolita - Saltare una piccola window del tempo settimanale
  • Come avviare i comandi crontab all'interno di alcune sessioni di schermo?
  • Invio di output cron a un file con un timestamp nel suo nome
  • Utilizzo di mysqldump nel lavoro cron senza password di root
  •   Step values can be used in conjunction with ranges. Following a range with ``/<number>'' specifies skips of the number's value through the range. For example, ``0-23/2'' can be used in the hours field to specify command execution every other hour (the alternative in the V7 standard is ``0,2,4,6,8,10,12,14,16,18,20,22''). 

    Quindi, nessun lavoro di due settimane, per quanto riguarda la mia comprensione. Sono abbastanza sicuro che ci siano soluzioni alternative, quali sono i tuoi? O mi mancava qualcosa?

    6 Solutions collect form web for “Come programmare un cronjob di due settimane?”

    Puoi avere la cosa eseguita dal cron each mercoledì, poi fare la cosa decidere se sia una settimana o una settimana dispari. per esempio:

     #!/bin/bash week=$(date +%U) if [ $(($week % 2)) == 0 ]; then echo even week else echo odd week fi 

    Molti croni (non hai specificato che stai utilizzando) i campi di supporto. Quindi qualcosa di simile

     0 0 1-7,15-21 * 3 

    Avrebbe colpito il primo e il terzo mezzogiorno del mese.

    Anacron è una buona soluzione per le limitazioni di cron.

    • Anacron ha un parametro Periodo di ricorrenza che può essere impostato su 14.

    ritardo di ritardo command job-identifier

    14 15 test.daily /path/to/script.sh

    Per qualcosa che ha bisogno di eseguire each altra settimana, utilizzare questo one-liner:

     0 0 * * 5 [ `expr \`date +\%V\` \% 2` -eq 0 ] && echo "execute script" 

    Questo particolare script è previsto per il venerdì. La settimana da eseguire può essere regolata usando "-eq 0" o "-eq 1"

    Se le vostre esigenze non sono letteralmente due settimane, è ansible eseguire semplicemente il cronjob il primo e il 15 del mese:

     15 8 1,15 * * /your/script.sh 

    Che corre alle 8:15 del primo e del quindicesimo di each mese a prescindere dal giorno della settimana.

    Da quel punto di spiegazione 3/2 sul field della settimana dovrebbe eseguire l'attività each altro mercoledì – il suo implicito, ma credo che sia ansible.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.