ansible常用模块之 -- cron模块 – 管理cron.d和crontab项

ansible常用模块之 -- cron模块 – 管理cron.d和crontab项

cron模块 – 管理cron.d和crontab项

一、摘要

  • 使用此模块管理crontab和环境变量项。该模块允许您创建环境变量和命名crontab项、更新或删除它们。
  • 当管理crontab作业时:模块包含一行crontab条目的描述“#Ansible: ”,对应于传递给模块的“name”,它被将来的Ansible /模块调用用来查找/检查状态。“name”参数应该是唯一的,更改“name”值将导致创建一个新的cron任务(或删除一个不同的任务)。
  • 当管理环境变量时,不添加注释行,但是,当模块需要查找/检查状态时,它使用“name”参数查找环境变量定义行。
  • 当使用像%这样的符号时,它们必须正确转义。

二、参数

参数选项/默认值描述
backup
boolean
· no ←
· yes
如果设置了,在修改crontab之前创建一个备份。该模块在backup_file变量中返回备份的位置。
cron_file
string
如果指定,则使用此文件而不是单个用户的crontab。
如果这是一个相对路径,它将根据/etc/cron.d进行解释
如果是绝对值,则通常为/etc/crontab。
许多linux发行版期望(有些要求)文件名部分只能由大写字母、小写字母、数字、下划线和连字符组成。
要使用cron_file参数,还必须指定用户。
day
string
Default:“*”作业应该运行的月份日期(1-31,/2等)
disabled
boolean
· no ←
· yes
如果作业应该在crontab中被禁用(注释掉)。
只有当state=present时才有效。
env
boolean
· no ←
· yes
如果设置,则管理crontab的环境变量。
在crontab上添加了新变量。
name和value参数分别为环境变量的名称和值。
hour
string
Default:“*”作业应该运行的小时(0-23、/2等)
insertafter
string
与state=present和env连用
如果指定了,则将在声明指定的环境变量之后插入环境变量。
insertbefore
string
与state=present和env连用
如果指定了,则将在声明指定的环境变量之前插入环境变量。
job
string
要执行的命令,如果设置了env,则为环境变量的值。
该命令不应该包含换行符。
需设置state=present。
minute
string
Default:“*”作业应该运行的分钟(0-59、/2等)
month
string
Default:“*”作业应该运行的月份(1-12、/2等)
name
string
crontab项的描述,如果设置了env,则为环境变量的名称。
需要state=absent。
注意,如果没有设置name且state=present,则将始终创建一个新的crontab条目,而不管现有条目是什么。
在以后的版本中,总是需要这个参数。
reboot
boolean
· no ←
· yes
是否应该在重新启动时运行作业。此选项已弃用。用户应该使用special_time。
special_time
string
· annually
· daily
· hourly
· monthly
· reboot
· weekly
· yearly
特殊时间规范昵称。
state
string
· present ←
· absent
是否确保作业或环境变量存在或不存在。
user
string
需要修改crontab的特定用户。
不设置时,默认使用root。
weekday
string
Default:“*”作业应该运行的星期几(周日-周六为0-6,*等)

三、示例

# 确保在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"
  cron:
    name: "check dirs"
    minute: "0"
    hour: "5,2"
    job: "ls -alh > /dev/null"

# 确保以前的工作不再存在。从crontab中删除前缀为“#Ansible: an old job”的任何作业
- 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

# 创建一个类似于"@reboot /some/job.sh"的条目
- name: Creates an entry like "@reboot /some/job.sh"
  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
  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
  cron:
    name: APP_HOME
    env: yes
    job: /srv/app
    insertafter: PATH

# 在/etc/cron.d下创建cron文件
- 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

# 从/etc/cron.d下删除cron文件
- name: Removes a cron file from under /etc/cron.d
  cron:
    name: "yum autoupdate"
    cron_file: ansible_yum-autoupdate
    state: absent

# 从crontab中删除“APP_HOME”环境变量
- name: Removes "APP_HOME" environment variable from crontab
  cron:
    name: APP_HOME
    env: yes
    state: absent

官方文档:https://docs.ansible.com/ansible/2.9/modules/cron_module.html#cron-module

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值