Lavoro quotidiano, settimanale e mensile di Cron

Recentemente ho scritto un piccolo script semplice per il backup di una directory a S3. Il mio objective è quello di eseguire backup giornalieri, settimanali e mensili che dispongono di regole di conservazione diverse in base alla frequenza in S3.

Tutto funziona abbastanza bene con un'exception. Il mio lavoro cron WEEKLY funziona each giorno. Ecco il crontab:

  • Crontab lunghezza massima di command
  • Anacrontab specifici per l'utente?
  • Exim - Forza i messaggi al dominio prima del tentativo
  • Lavoro Cron ad alta disponibilità
  • Le ls formati date diversamente quando eseguite da cron
  • docker - nessun crontab per la radice
  • 0 3 1 * * /usr/s3_sync_dir /dropbox MONTHLY 0 2 2-31 * THU /usr/s3_sync_dir /dropbox WEEKLY 0 3 2-31 * * /usr/s3_sync_dir /dropbox DAILY 

    Quindi il lavoro MENSILE funziona alle 3 del mattino il 1 di each mese. Il WEEKLY dovrebbe quindi funzionare giovedì alle 2 del mattino se non è il primo. E la DAILY funziona each giorno che non è il primo. Questo validatore online conferma che il WEEKLY dovrebbe essere eseguito each giovedì.

    Qualcuno ha pensieri sul perché il mio lavoro SETTIMANALE funziona each mattina?

    Questo è su Ubuntu 16.04.2 LTS.

    One Solution collect form web for “Lavoro quotidiano, settimanale e mensile di Cron”

    Dal manuale (man 5 crontab)

    Nota: il giorno dell'esecuzione di un command può essere specificato da due campi – giorno del mese e giorno della settimana. Se entrambi i campi sono limitati (cioè non sono *), il command verrà eseguito quando uno dei due campi corrisponde all'ora corrente. Ad esempio, “ 30 4 1,15 * 5 '' avrebbe causato un command per essere eseguito alle 4:30 del primo e del 15
    each mese, più each venerdì. Tuttavia, è ansible get il risultato desiderato aggiungendo un test al command (vedere l'ultimo esempio in ESEMPIO CRON FILE di seguito).

    Immagino che dovresti trasformare il tuo 2-31 in *

    O

    puoi utilizzare @daily, @weekly e @monthly.

    O

    puoi collegarvi ai tuoi script in /etc/cron.daily, /etc/cron.weekly, /etc/cron.monthly.

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