代码改变世界

Linux计划任务

2013-09-10 19:01  hduhans  阅读(186)  评论(0)    收藏  举报

  利用“任务计划”,可以将任何脚本、程序或文档安排在某个最方便的时间运行。

一、计划任务命令

(一) 一次性任务,at命令。

1、绝对计时方法

   1) midnight noon teatime(4 pm),如:at midnight 

   2) hh:mm [today],如:at 15:30 today

   3) hh:mm tomorrow,如:at 15:30 tomorrow

   4) hh:mm 星期

   5) hh:mm [MM/DD/YY、DD.MM.YY、MMDDYY],如:at 15:30 9/10/13   --2013年9月13日15:30

2、相对计时方法

   1) now + n minutes

   2) now + n hours 

   3) now + n days   

3、使用范例

   1) at now+3 minutes 

    > /usr/bin/wall "This is wall message"

   2) at now+3 minutes -f /test/at.script   --将命令保存至文件/test/at.script,此处-f可用 > 重定向代替

   3) at -l 或 atq  --查看当前计划任务

   4) atrm 任务编号 或 at -d 任务编号  --删除计划任务

注:1) 计划任务中使用命令最好实用命令所在的实际路径(使用whereis查看命令路径)

  2) 命令输入结束按Ctrl+D结束并保存命令

  3) at计划任务默认存放路径 /var/spool/at/

5、at命令使用权限配置文件

   配置文件存放路径分别为:① /etc/at.allow ② /etc/at.deny 

     说明:1) 如果at.allow文件存在,则只有列在此文件内的用户可以使用at命令;

      2) 如果at.allow文件不存在,则检查at.deny文件是否存在。如果at.deny文件存在,则列在此文件内的用户不能使用at命令;如果at.deny文件不存在,则只有超级用户可使用at命令。

      3) 如果两个文件都存在且均为空,则所有用户均可以使用at命令。

(二) 检测负载执行,batch命令(非重点)。

    batch是at命令的子命令,batch命令在执行时会检测系统的负载,只有当系统负载较轻(<0.8)时,才会执行计划任务。batch命令的使用方法同at命令。

(三) 周期性任务,cron(重点)。

1、时间的抒写,参数列表:

   1) minute  一小时中的哪一分钟[0~59]

   2) hour  一天中的哪个小时[0~23]

   3) day-of-month  一月中的哪一天[1~31]

   4) month-of-year  一年中的哪一月[1~12]

   5) day-of-week  一周的哪一天[0~6]

   6) commands  执行的命令

   法则:明确的时间写值,不明确写*

   范例:    分钟    小时    天      月             星期    命令/脚本

           1)  30      17      *       *              1-5     /usr/bin/wall > /etc/issue      --每星期一到星期五下午17:30分执行命令,通知所有用户,通知内容/etc/issue

           2)  45      17      *       *              1-5     /sbin/shutdown -h -now       --每星期一到星期五下午17:45分执行关机命令

         3)  */2    12-14  *      3-6,9-12    1-5     略                                      --每年的3-6月和9-12月中的礼拜一到礼拜五的下午12点到14点每隔2分钟执行命令

2、实例。

  1) crontab -e  (回车)

      30 17 * * 1-5 /usr/bin/wall > /etc/issue

3、查看删除命令。

   1) 查看 crontab -l 

   2) 删除 crontab -e 删除对应的记录行 

4、cron配置文件  

   1) /etc/crontab,系统默认会执行四个计划任务,可详细参考最后四行

   2) /etc/cron.allow 和 /etc/cron.deny ,与at命令的配置类似,详细可参考帮助文档(命令:man crontab)

注:1) crontab命令保存路径/var/spool/cron,可直接编辑此文件

  2) 若ps -le | grep crond找不到服务,可手动启动服务,命令:/etc/rc.d/inint.d/crond start