Please disable your adblock and script blockers to view this page
Connect with us

Linux

Come creare Cron Jobs su Linux


UN Cron o Cron job è uno scheduler basato sul tempo comune nei sistemi Linux / Unix. Pianifica l’esecuzione periodica delle attività utente specificate in data, ora o intervalli fissi. La maggior parte di queste attività sono script per eseguire funzioni come backup e altro. Per creare questi cron job, utilizziamo i comandi crontab. Un crontab è un comando / utilità UNIX utilizzato per creare e gestire cron job.

Come vedrai di seguito, creare e modificare un cron job è abbastanza semplice. La parte più sorprendente è che non è necessario riavviare cron o nemmeno il PC dopo aver creato o modificato un cron job. Basta salvare il file e sei a posto.

Usi comuni di Cron Jobs

  • Impostazione dell’ora dell’hardware: il Network Time Protocol è utilizzato da molti computer per impostare l’ora del sistema ma non imposta l’ora dell’hardware. Con cron, puoi impostare l’ora dell’hardware in base all’ora del sistema.
  • Pianificazione di attività ed esecuzione di programmi che eseguono programmi giornalieri: con il servizio cron, è possibile eseguire molti servizi di sistema che richiedono un prompt quotidiano come Logwatch.
  • Pulizia automatica della directory, esecuzione dei programmi di backup e molto altro ancora.

Parti di base di un comando cron

La sintassi standard del crontab è la seguente:

a b c d e USERNAME /path/to/script output

1.L’ora e la data insieme alla ripetitività del lavoro sono specificate dai cinque campi:

    • un: Minuti: (a partire da 0 – 59)
    • b: Ore: (che vanno da 0-23 )
    • c: Giorni: (a partire da 0-31 )
    • d: Mesi: (a partire da 0-12 )
    • e: Giorni della settimana: (a partire da 0 – 7. )

Nota: i giorni iniziano con lunedì. 0 e 7 rappresentano domenica

2. USERNAME: Ricordati di sostituirlo con il tuo nome utente

3. La posizione e lo script specifici che devono essere eseguiti da cron sono specificati dal terzo segmento:

/path/to/script

4. L’ultima sezione definisce la notifica all’utente al completamento del lavoro come un modo per tenere traccia delle attività:

output

Tuttavia, la tua casella di posta potrebbe essere piena di attività minori che vengono spesso canalizzate. Per evitare ciò, puoi disabilitare l’output automatico dell’email aggiungendo la stringa seguente al tuo comando cron:

>/dev/null 2>&1
e.g
a b c d e USERNAME /path/to/script>/dev/null 2>&1

Inoltre, cron utilizza altri quattro valori utilizzati per specificare più valori in un campo. Loro sono:

  • Asterisco :
  • Si riferisce a tutti i valori in un campo. La virgola (,):
  • Utilizzare per separare un elenco di valori nel comando cron. Dash (-):
  • Specifica un intervallo di valori. Barra (/):

divide un valore in diversi passaggi.

Configurazione dei cron job

I comandi crontab sono responsabili della creazione e della modifica dei cron job perché i file cron non devono essere modificati direttamente. Il crontab definisce come creare, modificare, elencare, eseguire il debug, installare e disinstallare le attività cron.

sudo apt update
sudo apt upgrade

Prima di iniziare con i cron job, è essenziale assicurarsi che il desktop o il server Linux sia aggiornato eseguendo i comandi seguenti:

sudo apt-get install cron

Se non hai il pacchetto cron installato sul tuo sistema, installalo con il comando seguente:
Installa cron

Installa cron

Come modificare il file crontab?

Per completare il processo, dovrai configurare il cron job. L’utente che ha effettuato l’accesso quando viene creato un cron job diventa automaticamente il proprietario. Ciò può essere modificato creando un proprietario del lavoro che sarà incaricato di gestire il cron job, come vedremo in questo post.

crontab -e

Per aprire il file di configurazione crontab per l’utente attualmente connesso, eseguire il comando seguente:

Ti verrà richiesto dal sistema di scegliere un editor adatto.  Nel nostro caso, sceglieremo la prima opzione (nano editor).
crontab -e

crontab -e

È possibile aggiungere un'attività pianificata per riga in base alle proprie preferenze.
file crontab

file crontab

Dopo aver aggiunto le attività, terminare salvando il file ed uscire. Tutte le istruzioni fornite verranno lette ed eseguite dal demone cron. Le modifiche verranno applicate anche senza riavviare il sistema poiché il repository viene aggiornato automaticamente.

Modifica crontab per un utente diverso

crontab –u other_username –e

Crontab può essere modificato per diversi utenti utilizzando un comando nella sintassi seguente:

Come usare caratteri speciali nei comandi crontab

  • I caratteri e gli operatori determinano una maggiore personalizzazione del sistema poiché estendono le capacità di un’attività cron. */30 * * * *
  • La barra viene utilizzata per dividere una stringa temporale in passaggi specificati. Ad esempio, per eseguire un backup ogni 30 minuti, possiamo utilizzare:
    */15***
  • L’asterisco
    viene utilizzato per eseguire tutti i valori da eseguire. Per esempio:
0 6* * 1-5 /root/backup.sh

Il trattino (-) viene utilizzato per determinare la gamma di attività, come il numero di giorni. Per

  • ad esempio, eseguiremo il codice alle 6 del mattino ogni giorno della settimana, useremo;
    0 4 * * 2,4 /root/backup.sh

    Qui, 06 sta per 6 am. 1-5 sta per il numero di giorni (dal lunedì al venerdì).

  • Una virgola specifica le singole istanze in cui il codice deve essere eseguito:
35 1-23/2 * * * /path/to/script/script.sh

Il comando sopra eseguirà il codice dello script alle 4 del mattino di martedì e giovedì. Puoi anche combinare vari caratteri jolly per personalizzare ancora di più i tuoi comandi. Ad esempio, per eseguire il nostro script a giorni alterni a 35 minuti dopo l’ora, possiamo utilizzare il comando seguente: 1-23 specifica l’intervallo di ore,

/ 2

imposta l’intervallo ogni due ore.

crontab –l

Opzioni cron
Potresti voler elencare i cron job nel tuo sistema senza sbloccare il file di configurazione crontab. Questo può essere fatto avviando il tuo terminale e digitando il comando seguente:

elenca i lavori di cron

elenca i lavori di cron

crontab -r
  • Quel comando elenca tutti i cron job presenti nel tuo sistema.
crontab -r -u other-username

Per eliminare tutti i comandi crontab, puoi utilizzare il comando seguente:

Elimina un cron job per un altro utente.

@hourly: Usa le stringhe in Crontab Le stringhe sono strumenti estremamente utili per gli sviluppatori poiché evitano la scrittura ripetitiva di segmenti di codice. Fortunatamente, i crontabs supportano vari valori di stringhe. Loro includono:-stesso di – “0 * * * *” (viene eseguito una volta ogni
@midnight: ora )-come – “0 0 * * *” (viene eseguito una volta ogni
@daily: giorno
@weekly: ) uguale a mezzanotte-come – “0 0 * * 0” (viene eseguito una volta ogni
@monthly: settimana )-come – “0 0 1 * *” (viene eseguito una volta ogni
@annually: mese )-come – “0 0 1 1 *” (viene eseguito una volta ogni
@yearly: anno
@reboot: )

simile a @annually

@daily /path/to/backup_script.sh

Eseguito una volta dopo ogni riavvio / riavvio / avvio.

Un buon esempio; se disponi di uno script di backup che desideri eseguire ogni giorno, utilizza il comando seguente:

    1. Esempi di cron job
      * * * * * /your/script/path.sh
    2. Ecco un elenco di cron job di base che possono essere utilizzati quando si inizia:
      40 * * * * /your/script/path.sh
    3. Per eseguire uno script ogni minuto:
      0 * * * * /your/script/path.sh
    4. Per eseguire uno script ogni 40 minuti:
      0 0 * * * /your/script/path.sh
    5. Per eseguire uno script ogni ora:
      23 0-23/2 * * * /your/script/path.sh
    6. Per eseguire uno script ogni mezzanotte:
      5 4 * * sun /your/script/path.sh
    7. Per eseguire uno script ogni 23 minuti dopo la mezzanotte, le 2:00 e le 4:00 ogni giorno:
      0 22 * * 1-5 /your/script/path.sh
    8. Per eseguire uno script alle 4.05 ogni domenica.
      0 0 0 12 * /your/script/path.sh
    9. Eseguire uno script alle 22:00 durante la settimana.
      0 0 * * 6 /your/script/path.sh
    10. Per eseguire uno script il 1 ° dicembre: mezzanotte.
      0 * * * * /your/script/path.sh

Per eseguire uno script sabato a mezzanotte.

Per eseguire uno script ogni ora.

Con questi esempi di base, entrerai in una comprensione più profonda della sequenza e di come può essere modificata. /etc/cron.allow Limitazione dell’accesso a Cron /etc/cron.deny Vediamo che i lavori di cron possono tornare molto utili, specialmente quando vuoi automatizzare le tue attività. Tuttavia, può anche essere rischioso se il sistema consente a qualsiasi utente di creare un cron job. Anche se non influisce sui dati personali, alcuni cron job potrebbero richiedere una discreta quantità di risorse di sistema, ritardando così il PC. Per evitare tali scenari, l’amministratore di sistema (utente root) può creare un file o il file che contiene solo gli utenti che possono

“creare / non creare” /etc/cron.allow un cron job. /etc/cron.deny Il

il file contiene utenti che possono creare, modificare, visualizzare o rimuovere file crontab.  Se questo file non esiste, tutti gli utenti possono creare e gestire cron job diversi da quelli in
file. Se nessuno di questi file è presente, sono necessari i privilegi di superutente per eseguire il comando crontab.

cron consenti file

0 * * * * fosslinux /path/to/script.sh

cron consenti file

Ora che hai impedito agli utenti non root di creare cron job se ne avevano già, potresti prendere in considerazione l’aggiunta dei loro cron job nel file crontab di root. Ma ecco un enigma: aggiungendo i loro cron job al crontab di root, non vengono eseguiti i loro cron job come root? Bene, ecco l’importanza del campo USERNAME di cui abbiamo discusso sopra nella sintassi del comando cron. Ad esempio, il comando seguente:

Verrà eseguito come cron job utente “fosslinux” e non come utente root.

Conclusione

Ora hai una guida chiara sull’utilizzo dei lavori Cron per automatizzare varie attività sul tuo sistema. Questo non dovrebbe confonderti con le applicazioni di avvio. Usa gli esempi precedenti per provare ad automatizzare semplici script. Con il tempo, puoi combinare caratteri speciali e caratteri jolly per svolgere compiti molto più banali. Se hai appena iniziato, sarebbe fantastico leggere il nostro post sul tutorial sullo scripting bash con esempi che ti aiuteranno a creare il tuo primo script.


Ti e piaciuto questo articolo?
Supporta il mio lavoro, facendo una donazione!

Click to comment

Leave a Reply

Esegui l'accesso per Commentare

Di tendenza