
Cron è un demone di pianificazione che consente di pianificare l'esecuzione di attività a intervalli specifici. Queste attività sono chiamate cron job e possono essere pianificate per l'esecuzione di un minuto, un'ora, un giorno del mese, un mese, un giorno della settimana o qualsiasi combinazione di questi.
I lavori Cron vengono in genere utilizzati per eseguire operazioni di manutenzione del sistema. Ad esempio, è possibile impostare un processo cron per automatizzare attività ripetitive come il backup dei database, l'aggiornamento del sistema con le ultime patch di sicurezza, lo svuotamento della cache, l'invio di e-mail e così via.
Questo articolo spiega come elencare i lavori cron.
Elenco dei lavori Cron degli utenti #
I file crontab degli utenti sono denominati in base al nome dell'utente e la loro posizione varia in base ai sistemi operativi. Nelle distribuzioni basate su Red Hat come CentOS, i file crontab sono archiviati in /var/spool/cron
directory, mentre su Debian e Ubuntu i file sono archiviati nella directory /var/spool/cron/crontabs
directory.
Per ottenere un elenco di tutti i lavori cron per l'utente con cui sei attualmente connesso, usa il crontab
comando:
crontab -l
Se l'utente ha impostato i lavori cron, il contenuto dei crontab dell'utente verrà visualizzato sullo schermo. In caso contrario, il comando stamperà no crontab for <username>
.
Per elencare i lavori cron di altri utenti, usa -u
opzione per specificare il nome utente alla fine del comando. Ad esempio, per elencare i lavori cron dell'utente chiamato "mark" dovresti usare:
sudo crontab -u mark -l
Ogni file crontab utente ha 600
autorizzazioni e di proprietà dell'utente. Solo root e utenti con sudo
i privilegi possono visualizzare i lavori cron di altri utenti.
Per scoprire quali utenti hanno creato lavori cron, elenca il contenuto dello spool
directory come utente root o sudo:
sudo ls -1 /var/spool/cron/crontabs
L'output sarà simile a questo:
root
mark
Elenco dei lavori Cron del sistema #
/etc/crontab
e i file all'interno di /etc/cron.d
directory sono file crontab a livello di sistema che possono essere modificati solo dagli amministratori di sistema.
Usa cat
, less
o qualsiasi editor di testo per visualizzare il contenuto dei file:
cat /etc/crontab /etc/cron.d/*
Nella maggior parte delle distribuzioni Linux puoi anche inserire script all'interno di /etc/cron.{hourly,daily,weekly,monthly}
directory e gli script vengono eseguiti ogni hour/day/week/month
.
Ogni script all'interno di queste directory deve disporre dell'autorizzazione di esecuzione. In caso contrario, il processo cron non verrà eseguito.
Ad esempio, per visualizzare tutti i lavori cron settimanali, digitare:
ls -l /etc/cron.weekly/
-rwxr-xr-x 1 root root 813 Feb 10 2019 man-db
Se l'output è vuoto, significa che non ci sono lavori cron settimanali.
Timer sistemati #
I timer di sistema sono file di unità che terminano con *.timer
suffisso e ti consentono di eseguire le unità di servizio in base all'ora.
Sulle distribuzioni Linux che utilizzano systemd come sistema init, i timer sono usati come alternativa al demone cron standard.
Per visualizzare un elenco di tutti i timer di sistema sulla tua macchina, esegui il comando seguente:
systemctl list-timers
NEXT LEFT LAST PASSED UNIT ACTIVATES
Sun 2020-02-16 00:00:00 UTC 1h 53min left Sat 2020-02-15 17:04:11 UTC 5h 2min ago logrotate.timer logrotate.service
Sun 2020-02-16 00:00:00 UTC 1h 53min left Sat 2020-02-15 17:04:11 UTC 5h 2min ago man-db.timer man-db.service
Sun 2020-02-16 03:50:52 UTC 5h 44min left Sat 2020-02-15 17:04:11 UTC 5h 2min ago apt-daily.timer apt-daily.service
Sun 2020-02-16 06:12:38 UTC 8h left Sat 2020-02-15 17:04:11 UTC 5h 2min ago apt-daily-upgrade.timer apt-daily-upgrade.service
Sun 2020-02-16 18:44:56 UTC 20h left Sat 2020-02-15 17:16:10 UTC 4h 50min ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
Conclusione #
Ti abbiamo mostrato come elencare i lavori cron e i timer di sistema.
Sentiti libero di lasciare un commento in caso di domande.