GNU/Linux >> Linux Esercitazione >  >> Linux

Risoluzione dei problemi di Cron Jobs

Cron è un servizio per server Linux che esegue automaticamente i comandi pianificati. Un lavoro cron può essere una serie di comandi della shell, script o altri programmi. Le attività o i lavori di Cron possono eseguire una varietà di funzioni e una volta eseguiti possono inviare un messaggio di posta elettronica per informarti del completamento o degli errori. Se ricevi un errore, ci sono molti modi per risolvere l'attività cron. Utilizzare questo articolo per assistenza alla risoluzione dei problemi o un tutorial sulle basi dei processi cron. Se desideri saperne di più sulla creazione di un lavoro cron, dai un'occhiata ai nostri tutorial della Knowledge Base sull'argomento.

Controllo delle configurazioni con Crontab

Dalla riga di comando, puoi rivedere i processi cron pianificati elencando il crontab per l'utente. Questo comando invia il contenuto del crontab dell'utente al terminale.

Come utente puoi eseguire:
crontab -l

Come root, puoi vedere il crontab di qualsiasi utente, specificando il nome utente.
crontab -l -u username

Puoi trovare alcune informazioni dettagliate su come formattare i lavori cron in /etc/crontab file. Di seguito è riportato l'esempio all'interno di quel file. Ogni asterisco può essere sostituito con un numero o nel campo corrispondente. Oppure puoi lasciare l'asterisco in posizione per rappresentare tutti i numeri possibili per quella posizione. Ad esempio, se lasciato con tutti gli asterischi, significa che il processo cron verrà eseguito ogni minuto, tutto il tempo.

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed

Modificare l'indirizzo e-mail di un Cron

Una volta avviato, un cron invia una notifica a un indirizzo e-mail, impostato all'interno della riga MAILTO del crontab.

MAILTO="[email protected]"

Per modificare crontab, puoi eseguire i seguenti comandi come utente:

crontab -e

Oppure, se hai effettuato l'accesso come root, puoi digitare il nome utente per tutti i tuoi utenti per vedere un'attività pianificata che hanno creato.

crontab -e -u username Questi aprono il crontab dell'utente nell'editor predefinito. Tipicamente il vim o nano comando aprirà il file. Tieni presente che è simile all'apertura di qualsiasi altro file di testo in cui salverai prima di chiudere.

La riga MAILTO indica dove deve essere inviato lo stato di esecuzione di un cron. L'indirizzo di invio sarà in genere il nome utente del creatore dell'attività cron insieme al nome host del server. Quindi l'indirizzo del mittente di un'e-mail seguirebbe questa sintassi, [email protected]. Se non vedi subito un'e-mail, potrebbe essere una buona idea controllare la tua casella di posta indesiderata.

Cron silenziato

A volte i lavori cron sono configurati per non produrre alcun output o per il suo output silenziato, anche se impostato con un indirizzo MAILTO. Se vedi un lavoro cron elencato con uno dei seguenti alla fine, è un segno che l'output di cron è stato silenziato. Questi inviano qualsiasi output al dispositivo nullo (il buco nero su un server Linux). In casi come questo, dovrai rimuovere la riga dallo script di cron job per generare un output.

&> /dev/null

2>&1 /dev/null Alcuni lavori cron sono completamente disabilitati. Questi avranno un "#" davanti al comando, risultando righe ignorate quando eseguite. Rimuovere il "#" per riattivare il cron job.

Verifica del servizio Crond

Dopo aver confermato le impostazioni corrette, è il momento di verificare che il sistema cron sia abilitato e funzionante. Ciascuno dei tre comandi seguenti può essere utilizzato per verificare se crond (il servizio cron) è in esecuzione.

/etc/init.d/crond status

service crond status

systemctl status crond

Dopo aver eseguito uno dei comandi precedenti, se trovi che il servizio crond non è in esecuzione, puoi avviarlo con uno dei seguenti.

/etc/init.d/crond start

service crond start

systemctl start crond

/var/log/cron

Una volta che sai che cron è abilitato, non silenziato e crond è in esecuzione, è il momento di controllare il log di cron, che si trova nel percorso di /var/log/cron .

cat /var/log/cron

Esempio di output:

Oct 2 23:45:01 host CROND[3957]: (root) CMD (/usr/local/lp/apps/kernelupdate/lp-kernelupdate.pl > /dev/null 2>&1)
Oct 2 23:50:01 host CROND[4143]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Oct 2 23:50:01 host CROND[4144]: (root) CMD (/usr/local/maldetect/maldet --mkpubpaths >> /dev/null 2>&1)
Nel registro, vedrai se, quando e quale utente ha eseguito il cron. Se avviato, vedrai la data e l'ora di esecuzione seguite da parentesi del singolo numero di cron. Questo timestamp non conferma che lo script sia stato eseguito normalmente o per niente, indica solo quando il sistema cron ha eseguito l'ultima volta l'attività. Oltre a ciò, potrebbe essere necessario esaminare lo script cron stesso o le configurazioni a livello di applicazione e i rispettivi registri per assicurarsi che il codice venga eseguito correttamente.

Altri servizi Cron

Questo articolo è semplicemente una panoramica del servizio crond principale in quanto esistono molti altri servizi di attività cron. Il sistema anacron è un servizio cron comunemente usato che configura lavori giornalieri o orari e può anche essere impostato per essere eseguito al riavvio. I log per questo tipo di attività si trovano all'interno di /var/log/cron e non vengono eseguiti da crond.

Altre attività pianificate, sebbene denominate anche cron job, non vengono eseguite dal sistema crond. Questi lavori cron sono spesso configurati all'interno del codice o della configurazione di un sito Web. Per determinare se eseguito, dovrai esaminare altre configurazioni e registri con cui interagisce lo script cron.

Come con tutti i servizi cron, i lavori automatizzati possono essere manipolati per eseguire numerose attività quotidiane, quindi non è necessario. Le attività cron possono occasionalmente andare storte anche senza alterarle o anni, ma sapere dove cercare è metà della battaglia nella risoluzione dei problemi di un lavoro cron.


Linux
  1. Cron Jobs/Attività automatizzate

  2. Come eliminare i lavori cron

  3. Aggiungi lavori cron in CWP

  4. Come pianificare i lavori Cron con Crontab

  5. RCRON – Imposta l'alta disponibilità dei lavori cron

Come automatizzare le attività con cron Jobs in Linux

Come visualizzare o elencare i lavori Cron in Linux

Lavori Cron programmati

Spiegazione di Cron Jobs e Crontab su Linux

Come impostare Cron Jobs in cPanel?

10 utili esempi di cron per pianificare i lavori in Linux