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:

  • Invia semplice e-mail HTML dalla row di command?
  • Crontab per riavviare il servizio
  • pptp (pon) non riesce quando viene chiamato via cron (debian)
  • Perché `crontab -` rimuove crontab e può essere annullata?
  • a volte, il crontab non viene ricaricato dal demone cron
  • Posso eseguire un lavoro cron più frequentemente di each minuto?
  • 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.