Ansible内置模块之cron
ansible.builtin.cron 模块是Ansible 的内置模块之一,用于在Unix 系统中管理cron 表项。它允许你创建、更新或删除定期执行的任务。
1. 选 项 说 明
选项 | 必须 | 类型 | 默认值 | 说明 |
name | 是 | str | 无 | cron 任务的描述性名称。这在创建和删除任务时用于标识任务cron 任务的描述性名称。这在创建和删除任务时用于标识任务 |
minute | 否 | str | * | 任务在每小时中的哪一分钟运行。可以是*,*/5,0-59 等 |
hour | 否 | str | * | 任务在一天中的哪小时运行。可以是*,*/2,0-23 等 |
day | 否 | str | * | 任务在一个月中的哪天运行。可以是*,*/2,1-31 等 |
month | 否 | str | * | 任务在一年中的哪个月运行。可以是*,*/2,1-12 等 |
weekday | 否 | str | * | 任务在一周中的哪天运行。可以是*,*/2,0-6(0 表示星期天)等 |
job | 是 | str | 无 | 要执行的命令 |
state | 否 | str | present | 任务的状态。可以是 present(存在)或 absent(不存在 |
user | 否 | str | 无 | 执行任务的用户 |
disabled | 否 | bool | no | 如果设置为 yes,则任务将被注释掉,相当于禁用任务 |
cron_file | 否 | str | 无 | 指定要修改的 cron 文件。默认修改用户的默认 cron 表 |
cron_file | 否 | dict | 无 | 一个字典,包含任务执行时的环境变量 |
backup | 否 | bool | no | 如果设置为 yes,则在修改 cron 文件之前创建一个备份文件 |
insertafter | 否 | str | 无 | 在指定的 cron 表项之后插入任务。可以是特定的字符串或正则表达式 |
insertbefore | 否 | str | 无 | 在指定的 cron 表项之前插入任务。可以是特定的字符串或正则表达式 |
special_time | 否 | str | 无 | 特殊时间:reboot,yearly,annually,monthly,weekly,daily,hourly |
2. 用 例
# 确保存在一个在2点和5点运行的任务。创建类似于“0 5,2 * * ls -alh > /dev/null”的条目
- name: Ensure a job that runs at 2 and 5 exists. Creates an entry like "0 5,2 * * ls -alh > /dev/null"
ansible.builtin.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'
ansible.builtin.cron:
name: "an old job"
state: absent
# 创建一个类似于“@reboot /some/job.sh”的条目
- name: Creates an entry like "@reboot /some/job.sh"
ansible.builtin.cron:
name: "a job for reboot"
special_time: reboot
job: "/some/job.sh"
# 在crontab 顶部创建一个类似于"PATH=/opt/bin" 的条目
- name: Creates an entry like "PATH=/opt/bin" on top of crontab
ansible.builtin.cron:
name: PATH
env: yes
job: /opt/bin
# 创建一个类似于"APP_HOME=/srv/app" 的条目并插入到PATH 声明之后
- name: Creates an entry like "APP_HOME=/srv/app" and insert it after PATH declaration
ansible.builtin.cron:
name: APP_HOME
env: yes
job: /srv/app
insertafter: PATH
# 在/etc/cron.d 下创建一个cron 文件,其中包含一个自动更新任务
- name: Creates a cron file under /etc/cron.d
ansible.builtin.cron:
name: yum autoupdate
weekday: "2"
minute: "0"
hour: "12"
user: root
job: "YUMINTERACTIVE=0 /usr/sbin/yum-autoupdate"
cron_file: ansible_yum-autoupdate
# 从/etc/cron.d 下删除一个cron 文件
- name: Removes a cron file from under /etc/cron.d
ansible.builtin.cron:
name: "yum autoupdate"
cron_file: ansible_yum-autoupdate
state: absent
# 从contab中清除APP_HOME环境变量(如果存在)
- name: Removes "APP_HOME" environment variable from crontab
ansible.builtin.cron:
name: APP_HOME
env: yes
state: absent
Ansible相关文章推荐
-
Ansible 命令行指南
-
Ansible内置模块之file
-
在RHEL 9上使用Ansible安装GitLab CE
-
16张PPT让你一小时学会Ansible
-
一文看懂Ansible自动化运维
-
Ansible内置模块之assemble
-
Ansible内置模块之authorized_key
-
Ansible内置模块之copy
-
红帽RHCE9.0课程介绍
-
红帽RHCA云技术课程介绍