Come eseguire più comandi in un unico Cron Job

27 ott 2022 2 min di lettura
Come eseguire più comandi in un unico Cron Job
Indice dei contenuti

Introduzione

Crontab è un'utilità per eseguire attività pianificate a intervalli regolari su sistemi Unix-Linux. Ci consente di programmare più lavori cron da eseguire contemporaneamente. Possiamo programmare qualsiasi comando o script della shell in modo che possa essere eseguito sul terminale. Ogni CronJob pianificato in crontab è separato da una nuova riga. Possiamo anche definire più comandi o script in un singolo lavoro cron da eseguire uno per uno.

Come separare due comandi in Linux

È possibile separare due o più comandi utilizzando gli operatori punto e virgola (;), AND logico (&&) o OR logico (||). Quale di questi operatori utilizziamo dipende totalmente dai requisiti. Ecco le nozioni di base sull'utilizzo di questi operatori.

Punto e virgola (;): viene utilizzato per separare più comandi. Questo esegue tutti i comandi senza controllare lo stato di uscita dei comandi precedenti:

command_1;  command_2;  command_n

AND logico (&&): serve per separare i comandi quando si vuole eseguire il comando successivo solo se il comando precedente è stato eseguito correttamente con stato di uscita 0:

command_1 &&  command_2 &&  command_n

OR logico (||): viene utilizzato per separare i comandi quando si desidera eseguire il comando successivo solo se il comando precedente non è riuscito con uno stato di uscita diverso da 0:

command_1 ||  command_2 ||  command_n

Come pianificare un Cron Job

Innanzitutto, passa all'utente da cui desideri eseguire un processo cron. Quindi apri l'editor crontab eseguendo il comando seguente:

crontab -e 

Quindi aggiungi una Cron Job al file.

Eseguire più comandi in un singolo processo Cron

Discutiamo gli esempi di vita reale dell'esecuzione di più comandi con crontab con diversi 2 separati.

Utilizzare punto e virgola (;)

Possiamo separare due o più comandi con punto e virgola, che non richiedono il controllo dello stato di uscita del comando precedente. Ad esempio, è necessario modificare l'autorizzazione di tutti i file su 777 ma è necessario impostare 777 per la directory dei registri:

0 2 * * *   chmod -R 755 /var/www/myapp; chmod -R 777 /var/www/myapp/logs

Utilizzare AND logico (&&)

Utilizzare questo operatore, dove si desidera eseguire il comando successivo solo se il precedente viene eseguito correttamente (stato di uscita 0). Ad esempio, si desidera eseguire backup.sh dopo essere passati con successo alla directory /backup:

0 2 * * *   cd /backup && bash backup.sh

Utilizzare OR logico (||)

Utilizzare l'operatore logico OR (||), quando si desidera eseguire il comando successivo solo se il precedente non è riuscito (stato di uscita diverso da 0). Ad esempio, vuoi mostrare un messaggio o inviare un'e-mail se il file di backup non è stato trovato:

0 2 * * *  [ -f /backup/mydb-`date +%F`.sql ] || echo "Today's backup file not found" 

Conclusione

In questo post del blog, hai imparato a eseguire più comandi in una singola voce di Cron Job. Abbiamo anche discusso di varie opzioni per separare i comandi. L'articolo fornisce i dettagli di base su ciascun separatore utilizzato per separare i comandi.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.