A seconda di come è configurato il tuo sistema Linux, puoi cercare in:
/var/spool/cron/*
(crontab utente)/etc/crontab
(crontab a livello di sistema)
inoltre, molte distribuzioni hanno:
-
/etc/cron.d/*
Queste configurazioni hanno la stessa sintassi di/etc/crontab
-
/etc/cron.hourly
,/etc/cron.daily
,/etc/cron.weekly
,/etc/cron.monthly
Queste sono semplicemente directory che contengono eseguibili che vengono eseguiti ogni ora, giornalmente, settimanalmente o mensilmente, in base al loro nome di directory.
Inoltre, puoi avere un lavoro (seleziona /var/spool/at/*
), anacron (/etc/anacrontab
e /var/spool/anacron/*
) e probabilmente altri che sto dimenticando.
Con la maggior parte dei Cron (ad es. Vixie-Cron - impostazione predefinita Debian/Ubuntu, Cronie - impostazione predefinita Fedora, Solaris Cron ...) ottieni l'elenco dei lavori cron pianificati per l'utente corrente tramite:
$ crontab -l
o per un altro utente tramite
# crontab -l -u juser
Per ottenere i crontab per tutti gli utenti puoi eseguire il loop su tutti gli utenti e chiamare questo comando.
In alternativa, puoi cercare i file di spool. Di solito, vengono salvati sotto /var/spool/cron
, per esempio. per vcron seguente directory
/var/spool/cron/crontabs
contiene tutti i crontab configurati di tutti gli utenti, tranne l'utente root che è anche in grado di configurare i lavori tramite il crontab a livello di sistema, che si trova in
/etc/crontab
Con cronie (predefinito su Fedora/CentOS), c'è un .d
style config anche per i cron job di sistema:
/etc/cron.d
(Come sempre, il .d
directory semplifica il mantenimento delle voci di configurazione che fanno parte di diversi pacchetti.)
Per comodità, la maggior parte delle distribuzioni fornisce anche una directory in cui gli script collegati/memorizzati vengono eseguiti periodicamente, ad esempio:
/etc/cron.daily
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.weekly
L'esecuzione tempestiva di tali script è generalmente gestita tramite run-parts
voci nel sistema crontab o tramite anacron.
Con Systemd (ad es. su Fedora, CentOS 7, ...) l'esecuzione periodica del lavoro può essere configurata anche tramite unità timer. I timer di sistema abilitati possono essere visualizzati tramite:
$ systemctl list-timers
Si noti che gli utenti oltre a root possono avere istanze systemd utente in esecuzione in cui sono configurati anche i timer. Ad esempio, su Fedora, per impostazione predefinita, viene avviata un'istanza systemd utente per ogni utente attualmente connesso. Possono essere riconosciuti tramite:
$ ps aux | grep 'systemd[ ]--user'
Questi timer utente possono essere elencati tramite:
$ systemctl --user list-timers
Un'alternativa all'emissione del list-timers
comando è cercare i file delle unità del timer (schema:*.timer
) e collegamenti simbolici ad essi nelle solite directory systemd config di sistema e utente:
$ find /usr/lib/systemd/ /etc/systemd -name '*.timer'
$ find /home '(' -path '/home/*/.local/share/systemd/user/*' \
-o -path '/home/*/.config/systemd/*' ')' \
-name '*.timer' 2> /dev/null
(Come con le normali unità di servizio, un'unità timer viene abilitata creando un collegamento simbolico nella directory di configurazione di systemd corretta.)
Vedi anche:
- Articolo di ArchWiki su Cron
- Articolo di ArchWiki sui timer di Systemd
Per elencare tutti i cron per un dato utente.
crontab -u nome utente -l;
Per elencare tutti i cron per tutti gli utenti
Eseguilo come superutente
#!/bin/bash
#List all cron jobs for all users
for user in `cat /etc/passwd | cut -d":" -f1`;
do
crontab -l -u $user;
done