dell'utente sono tenute sotto /var/spool/cron/crontab/$USER
, come indicato nel crontab man page:
Crontab è il programma utilizzato per installare, rimuovere o elencare le tabelle utilizzate per guidare il cron (8) daemon. Ogni utente può avere il proprio crontab, e sebbene questi siano file in/var/spool /, non sono pensati per essere modificati direttamente. Per SELinux in modalità mls possono essere anche più crontabs - per ogni gamma. Per ulteriori informazioni, vedere selinux (8).
Come accennato nella pagina di manuale, e la citazione di cui sopra, non si dovrebbe essere modifica/utilizzare questi file direttamente e invece dovrebbero utilizzare i crontab
comandi disponibili come crontab -l
per elencare crontab dell'utente, crontab -r
per rimuovere il crontab dell'utente o crontab -e
per modificare le voci crontab dell'utente.
Per rimuovere una voce crontab a mano è possibile utilizzare crontab -r
per rimuovere tutte le voci crontab dell'utente o crontab -e
per modificare direttamente il crontab.
Con Ansible questo può essere fatto utilizzando il modulo cron del state: absent
in questo modo:
hosts : all
tasks :
- name : remove ntpdate cron entry
cron :
name : ntpdate
state : absent
Tuttavia, questo si basa sul commento che Ansible pone al di sopra della voce di crontab che può essere visto da questa semplice operazione:
hosts : all
tasks :
- name : add crontab test entry
cron :
name : crontab test
job : echo 'Testing!' > /var/log/crontest.log
state : present
che poi imposta una voce di crontab che assomiglia:
#Ansible: crontab test
* * * * * echo Testing > /var/log/crontest.log
Sfortunatamente se si hanno voci di crontab che sono state impostate al di fuori del modulo cron di Ansible, allora si dovrà adottare un approccio meno pulito per riordinare le voci di crontab.
Per questo avremo semplicemente buttare via crontab del nostro utente utilizzando cron -r
e possiamo invocare questa via il guscio con un gioco che sembra qualcosa di simile:
hosts : all
tasks :
- name : remove user's crontab
shell : crontab -r
Possiamo quindi utilizzare altri compiti per impostare le attività che si desidera mantenere o aggiungere che utilizzano correttamente il modulo cron di Ansible.