-
Cron任务简介
计划任务是我们在日常服务器管理工作经中常要涉及的资源之一,那么如果我们有众多的服务器,如何来进行有效、快速的计划任务管理呢(添加、删除、调整计划任务等),作为一个好用的自动化运维工具,puppet能方便地实现对计划任务的有效的管理。
Puppet cron的任务就是用来安装和管理计划任务。每一个cron资源需要一个command属性和user属性以及至少一个周期属性(hour, minute, month, monthday, weekday)。计划任务的名字不是计划任务的一部分,它是puppet用来存储和检索该资源。假如你指定了一个除了名字其他的都和一个已经存在的计划任务相同,那么这两个计划任务被认为是等效的,并且新名字将会永久地与该计划任务相关联。一旦这种关联建立并写入磁盘之后,你就可以方便的进行计划任务的管理了。可以通过文件的方式来管理计划任务也可以通过计划任务格式来管理计划任务。
-
Puppet cron任务参数
-
command
计划任务执行的命令,最好指定命令的完整路径。
-
2. ensure
定义资源是否存在,也有通过这个参数来删除指定的计划任务。可能的值为present、absent。
-
3. environment
和这个计划任务有关的环境变量,比如设置PAHT, PATH=/bin:/usr/bin:/usr/sbin
。
-
4. hour
指定计划任务X小时运行,如果指定话,值的范围必须设置在0-23之间。
-
5. minute
指定计划任务在X分钟运行,如果指定话,值的范围必须设置在0-59之间。
-
6. month
指定计划任务在一年中的X月运行,如果指定话,值的范围必须设置在1-12之间。
-
7. monthday
指定计划任务在一个月的X天运行,如果指定话,值的范围必须设置在1-31之间。
-
8. name
指定计划任务的名字,这个名字只是提供给任命做参考,并且
-
9. target
计划任务的存放位置。
-
10. user
指定执行计划任务中命令的用户。puppet不会去检查用户是否运行执行计划任务,但是这个用户必须允许执行计划任务。默认的用户为运行puppet的用户。
-
11. weekday
指定计划任务在一周的X天运行。如果指定话,值的范围必须设置在0-7之间。注意0是表示星期天。
-
Puupet cron 任务实战
-
通过cron格式来管理计划任务
-
首先我们写一个最简单的假话任务来管理我们的服务器上的时间,代码如下:
cron { ntpdate:
command => "/sbin/ntpdate asia.pool.ntp.org",
user => root,
hour => [3,9,14,19],
minute => 59
}
设置3,9,14,19小时59分的时候进行时间同步,agent从主上同步玩配置以后,会在agent的假话任务中添加如下的内容:
# Puppet Name: ntpdate
59 3,9,14,19 * * * /sbin/ntpdate asia.pool.ntp.org
-
将上面的计划任务设置成每十分中运行一次,代码如下:
cron { ntpdate:
command => "/sbin/ntpdate asia.pool.ntp.org",
user => root,
minute => '*/10'
}
在agent生成的计划任务如下:*/10 * * * * /sbin/ntpdate asia.pool.ntp.org
-
删除时间同步的计划任务,代码如下:
cron { ntpdate:
command => "/sbin/ntpdate asia.pool.ntp.org",
user => root,
minute => '*/10',
ensure => "absent";
}