cron – Управление cron.d и crontab записями
Обзор
- Используйте этот модуль для управления записями crontab и переменными окружения. Этот модуль позволяет создавать, обновлять или удалять переменные окружения и именованные записи crontab.
- При управлении задачами crontab: модуль включает одну строку с описанием записи crontab
"#Ansible: <name>", соответствующей переданному модулю «имени», которое используется будущими вызовами ansible/модуля для поиска/проверки состояния. Параметр «имя» должен быть уникальным, а изменение значения «имени» приведет к созданию новой задачи cron (или удалению другой). - При управлении переменными окружения комментарии не добавляются, но при необходимости поиска/проверки состояния модуль использует параметр «имя» для поиска строки определения переменной окружения.
- При использовании символов, таких как %, они должны быть правильно экранированы.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- cron
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| backup boolean |
| Если установлено, создается резервная копия crontab перед ее модификацией. Путь к резервной копии возвращается в переменную backup_file этим модулем. |
| cron_file строка | Если указано, используется этот файл вместо crontab отдельного пользователя. Если это относительный путь, он интерпретируется относительно /etc/cron.d. Если это абсолютный путь, обычно это /etc/crontab. Многие дистрибутивы Linux ожидают (и некоторые требуют), что имя файла состоит только из заглавных и строчных букв, цифр, подчеркиваний и дефисов. Для использования параметра cron_file необходимо также указать параметр user. | |
| day строка | По умолчанию: "*" | День месяца, когда задача должна выполняться (1-31, *, */2 и т. д.) псевдонимы: dom |
| disabled boolean |
| Если задача должна быть отключена (закомментирована) в crontab. Действует только при state=present. |
| env boolean |
| Если установлено, управляет переменной окружения crontab. Новые переменные добавляются поверх crontab.
Параметры name и value — имя и значение переменной окружения. |
| hour строка | По умолчанию: "*" | Час, когда задача должна выполняться (0-23, *, */2 и т. д.) |
| insertafter строка | Используется с state=present и env.Если указано, переменная окружения будет вставлена после объявления указанной переменной окружения. | |
| insertbefore строка | Используется с state=present и env.Если указано, переменная окружения будет вставлена перед объявлением указанной переменной окружения. | |
| job строка | Команда для выполнения или, если установлен env, значение переменной окружения. Команда не должна содержать переводы строк. Требуется, если state=present.псевдонимы: значение | |
| minute строка | По умолчанию: "*" | Минута, когда задача должна выполняться (0-59, *, */2 и т. д.) |
| month строка | По умолчанию: "*" | Месяц года, когда задача должна выполняться (1-12, *, */2 и т. д.) |
| name строка | Описание записи crontab или, если установлен env, имя переменной окружения. Требуется, если state=absent.Обратите внимание, что если name не задано и state=present, то новая запись crontab всегда будет создана, независимо от существующих.Этот параметр всегда будет обязательным в будущих выпусках. | |
| reboot boolean |
| Если задача должна выполняться при перезагрузке. Этот параметр устарел. Пользователи должны использовать special_time. |
| special_time строка |
| Псевдоним специальной спецификации времени. |
| state строка |
| Указывает, требуется ли наличие или отсутствие задачи или переменной окружения. |
| user строка | Конкретный пользователь, чей crontab должен быть изменен. Если не указано, этот параметр по умолчанию использует root. | |
| weekday строка | По умолчанию: "*" | День недели, в который задача должна выполняться (0-6 для воскресенья-субботы, *, и т. д.) псевдонимы: dow |
Примеры
- name: Ensure a job that runs at 2 and 5 exists. Creates an entry like "0 5,2 * * ls -alh > /dev/null"
cron:
name: "check dirs"
minute: "0"
hour: "5,2"
job: "ls -alh > /dev/null"
- name: 'Ensure an old job is no longer present. Removes any job that is prefixed by "#Ansible: an old job" from the crontab'
cron:
name: "an old job"
state: absent
- name: Creates an entry like "@reboot /some/job.sh"
cron:
name: "a job for reboot"
special_time: reboot
job: "/some/job.sh"
- name: Creates an entry like "PATH=/opt/bin" on top of crontab
cron:
name: PATH
env: yes
job: /opt/bin
- name: Creates an entry like "APP_HOME=/srv/app" and insert it after PATH declaration
cron:
name: APP_HOME
env: yes
job: /srv/app
insertafter: PATH
- name: Creates a cron file under /etc/cron.d
cron:
name: yum autoupdate
weekday: "2"
minute: "0"
hour: "12"
user: root
job: "YUMINTERACTIVE=0 /usr/sbin/yum-autoupdate"
cron_file: ansible_yum-autoupdate
- name: Removes a cron file from under /etc/cron.d
cron:
name: "yum autoupdate"
cron_file: ansible_yum-autoupdate
state: absent
- name: Removes "APP_HOME" environment variable from crontab
cron:
name: APP_HOME
env: yes
state: absent
Статус
- Этот модуль не гарантирует обратной совместимости интерфейса. [превью]
- Этот модуль поддерживается сообществом Ansible. [сообщество]
Авторы
- Dane Summers (@dsummersl)
- Mike Grozak (@rhaido)
- Patrick Callahan (@dirtyharrycallahan)
- Evan Kaufman (@EvanK)
- Luca Berruti (@lberruti)
Подсказка
Если вы заметили какие-либо проблемы в этой документации, вы можете изменить этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/modules/cron_module.html