Guida per principianti a Cron Jobs e Crontab

Condividi questo articolo:


In questa guida, ci immergeremo in quello che è un cronjob e crontab. Facciamo un esempio di ciò che il cron è il motivo per cui si vorrebbe usarlo. C’è anche una calcolatrice che potete usare per generare una voce del crontab.

In tutti i nostri tutorial di Raspberry Pi, usiamo un po’ cron. I Cron jobs offrono un modo semplice per programmare le attività periodiche.

Inoltre, l’utilizzo di cron può eliminare la necessità di avere un programma continuamente in esecuzione e masticare preziosa potenza di elaborazione e RAM.

Ci sono molte situazioni in cui è necessario utilizzare i cron jobs. È facilmente uno degli strumenti più utili disponibili sui sistemi Linux.

Per facilitare l’elaborazione di un lavoro di cron valido, abbiamo incluso un generatore di crontab in fondo a questa guida.

Cos’è un Cron Job?

Cron è un job scheduler basato sul tempo che è parte integrante di sistemi operativi Unix-like come Linux e i suoi numerosi derivati.

L’utilizzo di cron è un modo popolare per eseguire periodicamente cose come comandi o script di shell.

I compiti pianificati attraverso l’utilità “cron” sono spesso chiamati “Cron Jobs”. Quando si ha a che fare con sistemi basati su Unix come Raspbian, ci si affida rapidamente a Cron Jobs.

Formato Cron Job

Di seguito abbiamo incluso due tabelle. La prima tabella mostra la sintassi generale di un lavoro di cron. La seconda tabella mostra i vari simboli che vengono utilizzati all’interno di un lavoro di cron e per cosa possono essere utilizzati.

I primi cinque componenti del cron job definiscono il tempo in cui si desidera che il compito venga eseguito. Usando questo, è possibile impostare un tempo specifico, o specificare un intervallo come ogni secondo giorno, o ogni minuto.

Alla fine di ogni riga di cron job, è necessario specificare il comando che si desidera venga attivato quando le condizioni dei componenti precedenti sono soddisfatte.

Ci addentreremo nei vari modi in cui è possibile utilizzare un lavoro di cron nelle prossime due sezioni. Ma per ora, familiarizzate con la configurazione generale di un cron job.

Sintassi del Cronjob

Sei parti essenziali costituiscono un cronjob

Le prime cinque parti costituiscono la sintassi di cron cron. Queste cinque parti sono il minuto, l’ora, il giorno del mese, il mese e il giorno della settimana.

La parte finale e la sesta parte della sintassi è il comando che si vuole eseguire quando le condizioni della sintassi di cronometraggio sono soddisfatte.

* * * * * [COMMAND]
Minute
(0-59)
Hour
(0-23)
Day Of the Month
(1-31)
Month
(1-12)
Day of the week
(0-6)
Command to run

Tabella dei simboli dei Cronjobs

Ci sono alcuni simboli diversi che si possono utilizzare all’interno di un lavoro di cron.

Il simbolo che probabilmente utilizzerete maggiormente nei vostri lavori di cron è l’asterisco (*). L’asterisco significa che il cron si attiverà ad ogni modifica di quel valore. Ad esempio, se usato nella colonna dei minuti, il cron si attiva ogni minuto.

L’altro simbolo che si utilizzerà è il simbolo del valore del passo, e questo è la barra di avanzamento (/). Questo simbolo è utile quando si vuole che un evento si verifichi in un certo lasso di tempo.

Per esempio, ogni 5 minuti sarebbe “*/5” nella colonna dei minuti, o ogni 3 giorni sarebbe “*/3” nella colonna del giorno del mese.

Qui sotto potete dare un’occhiata alla nostra tabella per vedere tutti i vari simboli che potete usare in un cron job e come possono essere usati.

Symbols Usage Example Explanation
* Any Value * * * * * [CMD] Ran every minute of every day
, Value List seperator 0 0 * * 1, 3, 5 [CMD] Ran every Monday, Wednesday, Friday at midnight
Defines a range 0 0 * 1-6 * [CMD] Ran at midnight every day for the first 6 months
/ Step Values */5 */2 * * * [CMD] Ran every 6 minutes, every 2 hours, every day
@yearly
@annually
Non Standard @yearly [CMD]
@annually [CMD]
Ran at midnight on the first day of the year
@monthly Non Standard @monthly [CMD] Ran at midnight on the first day of the month
@weekly Non Standard @weekly [CMD] Ran at midnight on the first day of the week
@daily Non Standard @daily [CMD] Ran at midnight every day
@hourly Non Standard @hourly [CMD] Ran at the start of every hour
@reboot Non Standard @reboot [CMD] Ran when the cron service restarts, usually at boot

Esempi di Cronjobs

In questa sezione, vi forniremo alcuni esempi di lavori di cron che potrete utilizzare. Vi spiegheremo anche come funzionano e i simboli che stiamo usando.

* * * * * * [COMANDO]

Questa riga è il lavoro di cron più semplice che si possa scrivere. Eseguirà il comando ogni minuto per tutto il tempo.

Fondamentalmente, se volete qualcosa da eseguire sempre, usate questo lavoro di cron.

0 * * * * * * [COMANDO]

La linea di cui sopra funzionerà al minuto 0 di ogni ora. Questo cron è utile se si desidera che qualcosa funzioni ogni ora.

15 5 * * * * [COMANDO]

Questo lavoro di cron sparerà alle “5:15 del mattino” ogni giorno. Lo facciamo specificando “15” nella colonna dei minuti e “5” nella colonna delle ore.

0 0 0 15 * * * * [COMANDO]

Questa linea funzionerà alla mezzanotte del 15 di ogni mese.

*/15 * * * * * * * * [COMANDO]

Ora questo lavoro verrà eseguito ogni 15 minuti. Questo si ottiene accoppiando l’asterisco (*) con il modificatore “/” di barra in avanti.

0 0 0 * * 1-5 [COMANDO]

Con questo lavoro di cron, stiamo facendo uso del simbolo della gamma (-) in modo da eseguire il cron solo nei giorni feriali. Questo lavoro si attiva a mezzanotte nei giorni 1 (lunedì) – 5 (venerdì).

* * 3,5,10 * * * [COMANDO]

Il nostro ultimo esempio di lavoro di cron scatterà ogni minuto il 3, 5 e 10 di ogni mese. Potete elencare i valori per ogni colonna in questo modo utilizzando una virgola (,).

Modifica del file Crontab

Il file crontab è il luogo in cui sono conservati tutti i lavori di cron per l’utente corrente. Il demone cron legge automaticamente questi file ed elabora i lavori contenuti nei file.

Una cosa da notare è che i job di cron sono gestiti dall’utente che li ha creati. Per esempio, un job di cron creato dall’utente root sarà eseguito dall’utente root. In alternativa, un job di cron creato da un utente chiamato pimylifeup sarà eseguito da quell’utente.

Per iniziare a modificare il file crontab per l’utente corrente, è possibile eseguire il seguente comando. Aggiungendo sudo all’inizio si modifica il crontab dell’utente root.

crontab -e

In alternativa, se si desidera modificare il crontab per un particolare utente, è possibile farlo specificando l’utente con l’argomento “-u” come mostrato di seguito.

rticolare utente, è possibile farlo specificando l’utente con l’argomento “-u” come mostrato di seguito.

crontab -u [USERNAME] -e

Quando si esegue per la prima volta il comando “crontab -e”, vi verrà chiesto di selezionare un editor da utilizzare.

Troviamo che “/bin/nano” sia il più facile da usare, ma dovreste scegliere quello che vi è familiare e che vi piace usare.

no crontab for pimylifeup - using an empty one

Select an editor. To change later, run 'select-editor'.
 1. /bin/nano <---- easiest
 2. /usr/bin/vim.basic
 3. /usr/bin/vim.tiny
 4. /bin/ed

Choose 1-4 [1]:


Nel file crontab è possibile aggiungere i nuovi lavori di cron in basso. Ognuno di questi lavori dovrebbe essere sulla propria linea.

Per esempio, se doveste aggiungere due nuovi lavori di cron al file, dovrebbe assomigliare a quello che abbiamo qui sotto.

# m h h dom mon dow comando
* * * * * * [COMANDO]
0 0 0 15 * * * * [COMANDO]

 

A questo punto, spero che abbiate una buona comprensione sia dei lavori di Cron che del crontab. Se pensate che ci sia sfuggito qualcosa o semplicemente avete qualche feedback, non esitate a lasciare un commento qui sotto.


Per ulteriori informazioni visita il sito: immagi.net

Condividi questo articolo: