Ответ 1
Элементы crontab пользователя хранятся под /var/spool/cron/crontab/$USER
, как указано в странице crontab:
Crontab - это программа, используемая для установки, удаления или списка таблиц, используемых для управления демоном cron (8). Каждый пользователь может иметь свой собственный crontab, и хотя это файлы в /var/spool/, они не предназначены для прямого редактирования. Для SELinux в режиме mls может быть еще больше crontabs - для каждого диапазона. Подробнее см. Selinux (8).
Как упоминалось на странице руководства и приведенной выше цитате, вы не должны редактировать или использовать эти файлы напрямую и вместо этого должны использовать доступные команды crontab
, такие как crontab -l
, чтобы перечислять записи пользователя crontab, crontab -r
для удаления пользователя crontab или crontab -e
для редактирования записей crontab пользователя.
Чтобы удалить запись crontab вручную, вы можете использовать crontab -r
, чтобы удалить все записи crontab пользователя или crontab -e
, чтобы напрямую отредактировать crontab.
С помощью Ansible это можно сделать, используя cron модуль state: absent
следующим образом:
hosts : all
tasks :
- name : remove ntpdate cron entry
cron :
name : ntpdate
state : absent
Однако это зависит от комментария, который Ansible ставит над элементом crontab, который можно увидеть из этой простой задачи:
hosts : all
tasks :
- name : add crontab test entry
cron :
name : crontab test
job : echo 'Testing!' > /var/log/crontest.log
state : present
Что затем устанавливает элемент crontab, который выглядит следующим образом:
#Ansible: crontab test
* * * * * echo Testing > /var/log/crontest.log
К сожалению, если у вас есть записи crontab, которые были установлены вне модуля Ansible cron, вам придется принять более чистый подход к упорядочению записей crontab.
Для этого нам просто нужно выбросить нашего пользователя crontab с помощью cron -r
, и мы можем вызвать его через оболочку с игрой, которая выглядит примерно так:
hosts : all
tasks :
- name : remove user crontab
shell : crontab -r
Затем мы можем использовать дополнительные задачи для установки задач, которые вы хотите сохранить или добавить, которые правильно используют модуль Ansible cron.