|
ansible cron 模块就是计划任务,很简单
backup:操作之前先备份目标主机上的原计划任务
cron_file:如果指定该选项,则用该文件替换远程主机上的cron.d目录下的用户的任务计划
day: 指定日(1-31,*,*/1,……)
hour:指定小时(0-23,*,*/2,……)
minute:指定分钟(0-59,*,*/3,……)
month:指定月(1-12,*,*/4,……)
weekday:指定周(0-7,*,……)
job:要执行的任务,依赖于state=present
name:该任务的描述
special_time:指定什么时候执行,参数:reboot,yearly,annually,monthly,weekly,daily,hourly
state:确认该任务计划是创建还是删除
user:以哪个用户的身份执行
1.每分钟说一句话到/tmp下
1
2
3
4
5
6
7
| # ansible dbserver -m cron -a "name='echo ckl to tmp' minute=*/1 job='echo \"ckl is good man\" >> /tmp/kk.txt' user=root" 172.16.110.49 | SUCCESS => {
"changed": true,
"envs": [],
"jobs": [
"echo ckl to tmp"
]
}
|
1
2
3
| # crontab -l
#Ansible: echo ckl to tmp
*/1 * * * * echo "ckl is good man" >> /tmp/kk.txt
|
1
2
| # cat kk.txt
ckl is good man
|
2.将计划任务写到目标主机的文件中
1
2
3
4
5
6
7
8
9
| # ansible dbserver -m cron -a "name='mei diao yong' cron_file=/root/ckl_cron.txt user=root job='minute=*/3 /bin/bash /opt/script/df.sh'"
172.16.110.49 | SUCCESS => {
"changed": true,
"cron_file": "/root/ckl_cron.txt",
"envs": [],
"jobs": [
"mei diao yong"
]
}
|
1
2
3
| # cat /root/ckl_cron.txt
#Ansible: mei diao yong
* * * * * root minute=*/3 /bin/bash /opt/script/df.sh
|
3.备份原有的任务计划,创建新的之前
1
2
3
4
5
6
7
8
9
10
| # ansible dbserver -m cron -a "name='test back' backup=yes user=root minute=*/2 job='/bin/ls /root'"
172.16.110.49 | SUCCESS => {
"backup_file": "/tmp/crontabU1wKmy",
"changed": true,
"envs": [],
"jobs": [
"echo ckl to tmp",
"test back"
]
}
|
1
2
3
4
5
| # crontab -l
#Ansible: echo ckl to tmp
*/1 * * * * echo "ckl is good man" >> /tmp/kk.txt
#Ansible: test back
*/2 * * * * /bin/ls /root
|
查看备份:
1
2
3
4
| # cat /tmp/crontabU1wKmy
#Ansible: echo ckl to tmp
*/1 * * * * echo "ckl is good man" >> /tmp/kk.txt
You have new mail in /var/spool/mail/root
|
|
|
|