ansible模块-计划任务模块
ansible查看帮助方法
# 查看所有模块帮助信息
ansible-doc -l
# 指定查看某个模块参数用法
ansible-doc copy
1.cron计划任务模块
1.1 新增计划任务
正常使用crond服务
$ crontab -l
* * * * * /bin/sh /server/scripts/yum.sh
使用ansible添加一条计划任务
ansible all -m cron -a "minute=* hour=* day=* month=* weekday=* job='/bin/sh /server/scripts/test.sh'"
等同于
ansible all -m cron -a "job='/bin/sh /server/scripts/test.sh'"
执行完后查看,可以看到,当不指定 name
参数时,默认的注释为 #Ansible: None
$ crontab -l
#Ansible: None
* * * * * /bin/sh /server/scripts/test.sh
设置计划任务注释信息,需要使用 name 参数
ansible all -m cron -a "name='cron01' job='/bin/sh /server/scripts/test.sh'"
执行完后查看,可以看到,当指定 name
参数时,会有指定名称的注释
$ crontab -l
#Ansible: cron01
* * * * * /bin/sh /server/scripts/test.sh
指定用户
ansible all -m cron -a "name='cron01' job='/bin/sh /server/scripts/test.sh' user=hehe"
查看 hehe
用户的计划任务
$ crontab -l -u hehe
#Ansible: cron01
* * * * * /bin/sh /server/scripts/test.sh
1.2 删除计划任务
删除注释名称为
cron01
的计划任务
ansible all -m cron -a "name=cron01 state=absent"
1.3 注释计划任务
查看计划任务
$ crontab -l
#Ansible: cron01
* * * * * /bin/sh /server/scripts/test.sh
注释计划任务
注释之后想要取消注视需要指定
disabled=no
ansible all -m cron -a "name='cron01' minute=* hour=* day=* month=* weekday=* job='/bin/sh /server/scripts/test.sh' disabled=yes"
再次查看
$ crontab -l
#Ansible: cron01
#* * * * * /bin/sh /server/scripts/test.sh
1.4 修改计划任务
查看计划任务
$ crontab -l
#Ansible: cron01
* * * * * /bin/sh /server/scripts/test.sh
修改计划任务
因为已经存在注释名称为
cron01
的计划任务,因此再次执行会修改,添加backup
参数备份计划任务
$ ansible all -m cron -a "name='cron01' minute=10 hour=10 day=* month=* weekday=* job='/bin/sh /server/scripts/test.sh' backup=yes"
devops02 | CHANGED => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"backup_file": "/tmp/crontab7HtoRG",
"changed": true,
"envs": [],
"jobs": [
"cron01"
]
}
查看备份
$ cat /tmp/crontabeXW_Jf
#Ansible: cron01
* * * * * /bin/sh /server/scripts/test.sh
cron模块参数
参数 | 说明 |
---|---|
minute | 分钟 |
hour | 小时 |
day | 日期 |
month | 月份 |
weekday | 星期 |
job | 要执行的命令或脚本 |
name | 指定计划任务名称 |
disabled | 是否注视 |
state | absent表示删除计划任务 |
user | 指定运行用户 |
disabled | 注释计划任务,必须指定名称、时间、job |
backup | 如果为yes,则修改或者删除计划任务前会先备份 |