cron模块
cron模块可以帮助我们管理远程主机中的计划任务,功能相当于crontab命令
#示例1
51***echo test
#示例2
11*/3**echo test
#示例3
@reboot echo test
#示例4
@hourly echo test
minute参数:此参数用于设置计划任务中分钟设定位的值,比如,上述示例1中分钟设定位的值为5,即
minute=5,当不使用此参数时,分钟设定位的值默认为“*山
hour参数:此参数用于设置计划任务中小时设定位的值,比如,上述示例1中小时设定位的值为1,即hour=1,当不使用此参数时,小时设定位的值默认为“*"
day参数:此参数用于设置计划任务中日设定位的值,当不使用此参数时,日设定位的值默认为“*”
month参数:此参数用于设置计划任务中月设定位的值,当不使用此参数时,月设定位的值默认为“*”
weekday参数:此参数用于设置计划任务中周几设定位的值,当不使用此参数时,周几设定位的值默认为“*"
special_time参数:在上述示例3与示例4中,计划任务的时间设定格式为@reboot或者@hourly,@reboot表示重启时执行,@hourly表示每小时执行一次,相当于设置成“O****",这种@开头的时间设定格式则需要使用special_time参数进行设置,special_time参数的可用值有reboot(重启后)、yearly(每年)、annually(每年,与yearly相同)、monthly(每月)、weekly(每周)、daily(每天)、hourly(每时)
user参数:此参数用于设置当前计划任务属于哪个用户,当不使用此参数时,默认为管理员用户
job参数:此参数用于指定计划的任务中需要实际执行的命令或者脚本,比如上例中的“echo test“命令。
0表示在整时,整分,整秒*表示忽略,任意时刻。
cron表达式只关注有值的部分,*的部分可以忽略,但是一定要符合6个参数的格式
name参数:此参数用于设置计划任务的名称,计划任务的名称会在注释中显示,当不指定计划任务的名称时,ansible会默认为计划任务加入注释,注释的内容为
state参数:当计划任务有名称时,我们可以根据名称修改或删除对应的任务,当删除计划任务时,需要将state的值设置为absent
disabled参数:当计划任务有名称时,我们可以根据名称使对应的任务“失效”(注释掉对应的任务),注意,使用此参数时,除了需要指定任务的名称,还需要同时指定任务的job以及任务的时间设定,而且任务的时间设定必须和对应任务完全相同,否则在注释任务的同时,任务的时间设定会被修改
backup参数:如果此参数的值设置为yes,那么当修改或者删除对应的计划任务时,会先对计划任务进行备份,然后再对计划任务进行修改或者删除,cron模块会在远程主机的/tmp目录下创建备份文件,以crontab开头并且随机加入一些字符,具体的备份文件名称会在返回信息的backup_file字段中看到,推荐将此此参数设置为yes
操作
在test组中创建任务任务名称为test-westos任务为每天的1点五分输出test
创建任务名称为crontabl day test 任务为每三天的1点1分输出test
创建任务当重启时输出test
当任务名字一样的时候我们的ansible会识别出来对任务进行修改
当任务名一样是我们可以利用backup=yes进行备份
我们也可以利用dd 用户进行操作不过要保证远程主机中存在此用户
创建任务注释并备份