Introduzione
Il nome Cron deriva da una parola greca Chronos, usata per indicare il tempo. È un demone per i sistemi Linux per automatizzare l'esecuzione di comandi o script a intervalli di tempo specificati.
Questo tutorial ti mostrerà le diverse opzioni per elencare tutti i cron job pianificati per gli utenti su sistemi Linux.
Come elencare i cron job dell'utente corrente
Il comando crontab predefinito funziona per l'utente attualmente connesso. Puoi elencare tutti i cron job pianificati per l'utente corrente, eseguire:
crontab –l
Dovresti ricevere un messaggio di output che mostra tutti i cron che hai impostato sul server.
Tutti i lavori cron dell'utente si trovano generalmente nella directory /var/spool/cron/crontabs. Viene creato un file separato per tutti gli account utente con il loro nome.
Elencare i Cron Job di un altro utente
Un utente con privilegi root o sudo può anche visualizzare i cronjob pianificati di altri utenti. Usa -u
seguito dal nome utente per elencare tutti i lavori che appartengono a un utente specifico.
Per esempio:
sudo crontab –u username –l
Sostituisci username
con il nome utente effettivo che desideri visualizzare sui cron job.
Elencare i Cron Job in esecuzione dal sistema
L'utente root può accedere e modificare i crontab del sistema operativo. È possibile visualizzare i cronjob del sistema eseguendo il seguente comando come account privilegiato root o sudo.
less /etc/crontab
Dovresti visualizzare un messaggio di output con la lista di tutti i Cron Job del sistema operativo:
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
/etc/crontab (END)
Come elencare i Cron Job orari
È possibile visualizzare la directory /etc/cron.hourly
per trovare tutti i cron job pianificati per essere eseguiti ogni ora.
ls -la /etc/cron.hourly
Dovresti visualizzare un messaggio di output con la lista di tutti i Cron Job configurati per essere eseguiti ogni ora:
total 12
...
drwxr-xr-x 2 root root 4096 Feb 17 2019 .
drwxr-xr-x 99 root root 4096 Jan 20 06:04 ..
-rw-r--r-- 1 root root 102 Nov 16 2017 .placeholder
...
L'output sopra mostra che non esiste una pianificazione dei processi cron da eseguire ogni ora. Puoi vedere un file .placeholder
in ogni directory, che viene creato per evitare l'eliminazione accidentale della directory dal gestore dei pacchetti. Quando nessun altro file esiste nella directory.
Come elencare i Cron Job giornalieri
Allo stesso modo, è possibile elencare tutti i job pianificati da eseguire su base giornaliera. La maggior parte dei lavori dell'applicazione può essere trovata in questa directory.
ls -la /etc/cron.daily
Dovresti visualizzare un messaggio di output con la lista di tutti i Cron Job giornalieri:
total 64
drwxr-xr-x 2 root root 4096 Dec 10 06:57 .
drwxr-xr-x 99 root root 4096 Jan 20 06:04 ..
-rwxr-xr-x 1 root root 376 Nov 20 2017 apport
-rwxr-xr-x 1 root root 1478 Apr 20 2018 apt-compat
-rwxr-xr-x 1 root root 314 Jan 17 2018 aptitude
-rwxr-xr-x 1 root root 355 Dec 29 2017 bsdmainutils
-rwxr-xr-x 1 root root 1176 Nov 2 2017 dpkg
-rwxr-xr-x 1 root root 372 Aug 21 2017 logrotate
-rwxr-xr-x 1 root root 1065 Apr 7 2018 man-db
-rwxr-xr-x 1 root root 539 Jun 26 2018 mdadm
-rwxr-xr-x 1 root root 538 Mar 1 2018 mlocate
-rwxr-xr-x 1 root root 249 Jan 25 2018 passwd
-rw-r--r-- 1 root root 102 Nov 16 2017 .placeholder
-rwxr-xr-x 1 root root 3477 Feb 21 2018 popularity-contest
-rwxr-xr-x 1 root root 246 Mar 21 2018 ubuntu-advantage-tools
-rwxr-xr-x 1 root root 214 Jun 27 2018 update-notifier-common
...
Come elencare i Cron Job settimanali
I cron job settimanali sono programmati nella directory /etc/cron.weekly
.
ls -la /etc/cron.weekly
Dovresti visualizzare un messaggio di output con la lista dei Cron Job settimanali:
total 64
drwxr-xr-x 2 root root 4096 Dec 10 06:57 .
drwxr-xr-x 99 root root 4096 Jan 20 06:04 ..
-rwxr-xr-x 1 root root 376 Nov 20 2017 apport
-rwxr-xr-x 1 root root 1478 Apr 20 2018 apt-compat
-rwxr-xr-x 1 root root 314 Jan 17 2018 aptitude
-rwxr-xr-x 1 root root 355 Dec 29 2017 bsdmainutils
-rwxr-xr-x 1 root root 1176 Nov 2 2017 dpkg
-rwxr-xr-x 1 root root 372 Aug 21 2017 logrotate
-rwxr-xr-x 1 root root 1065 Apr 7 2018 man-db
-rwxr-xr-x 1 root root 539 Jun 26 2018 mdadm
-rwxr-xr-x 1 root root 538 Mar 1 2018 mlocate
-rwxr-xr-x 1 root root 249 Jan 25 2018 passwd
-rw-r--r-- 1 root root 102 Nov 16 2017 .placeholder
-rwxr-xr-x 1 root root 3477 Feb 21 2018 popularity-contest
-rwxr-xr-x 1 root root 246 Mar 21 2018 ubuntu-advantage-tools
-rwxr-xr-x 1 root root 214 Jun 27 2018 update-notifier-common
...
Come elencare i Cron Job mensili
Tutti i cron job mensili sono programmati nella directory /etc/cron.monthly
.
ls -la /etc/cron.monthly
Dovresti visualizzare un messaggio di output con la lista dei Cron Job mensili:
total 12
drwxr-xr-x 2 root root 4096 Feb 17 2019 .
drwxr-xr-x 99 root root 4096 Jan 20 06:04 ..
-rw-r--r-- 1 root root 102 Nov 16 2017 .placeholder
...
Come visualizzare i Cron Job specifici dell'applicazione
I cron job possono essere creati dalle applicazioni e possono essere cron job che vengono eseguiti ogni ora, giornalieri, settimanali o mensili.
Ad esempio, il server Web Apache crea il file del cron in /etc/cron.daily
. Significa che il job viene eseguito su base giornaliera. Puoi vedere il contenuto del job cron accedendo al contenuto del file come di seguito:
cat /etc/cron.daily/apache2
Dovresti visualizzare un messaggio di output con la lista di tutti i Cron Job giornalieri:
#!/bin/sh
# run htcacheclean if set to 'cron' mode
set -e
set -u
type htcacheclean > /dev/null 2>&1 || exit 0
[ -e /etc/default/apache-htcacheclean ] || exit 0
# edit /etc/default/apache-htcacheclean to change this
HTCACHECLEAN_MODE=daemon
HTCACHECLEAN_RUN=auto
HTCACHECLEAN_SIZE=300M
HTCACHECLEAN_PATH=/var/cache/apache2/mod_cache_disk
HTCACHECLEAN_OPTIONS=""
. /etc/default/apache-htcacheclean
[ "$HTCACHECLEAN_MODE" = "cron" ] || exit 0
htcacheclean ${HTCACHECLEAN_OPTIONS} \
-p${HTCACHECLEAN_PATH} \
-l${HTCACHECLEAN_SIZE}
Conclusione
In questo tutorial, hai imparato a visualizzare ed elencare i cron job su un sistema Linux. Inoltre, hai trovato dettagli sui cron job eseguiti su base oraria, giornaliera, settimanale o mensile.