Chinaunix首页 | 论坛 | 博客

M4

  • 博客访问: 4268
  • 博文数量: 3
  • 博客积分: 20
  • 博客等级: 民兵
  • 技术积分: 40
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-13 21:26
个人简介

打杂中

文章分类

全部博文(3)

文章存档

2015年(3)

我的朋友

分类: LINUX

2015-08-21 15:10:46

       Linux 中有两个命令用于安排计划任务,at 和 crontab 。它们大大的简化了我们的维护工作量,比如定期以及指定时间运行脚本等。本文主要就crontab使用过程中的一些值得注意的事项进行说明。
       crontab只能用于安排周期计划任务,无论你怎么设置,总会存在将来的某个时刻会再次执行,所以对于只能进行一次的维护任务等,请选择at命令,主要是担心大家在crontab执行完后会忘记删除任务,导致将来出现一些意想不到的错误。
       crontab的最小时间精度是分,对于日常的维护已经足够了。如果需有精确到秒这样的需求,可以在运行command前先sleep一定秒数,比如,* * * * * sleep 10; command1,这样command1就会每分钟的第10秒执行。
       crontab周期执行任务的注意事项。我们经常会在日常运维中遇到每隔N分钟,每隔N小时、每隔N天执行一次维护任务。如果每隔三小时执行一次,则前面的分钟数不能以星号(*)代替,比如,* */3 * * * scommand2,那么将会每隔3小时,执行60次,需采用下面的格式:0 */3 * * * scommand2,其他同理。
       关于crontab周期执行任务还有个注意事项,它安排任务开始于你间隔周期精度的第一个时间点,比如每隔7小时执行一次,则0点任务第一次执行,以后每隔7小时执行一次,到第二天0点再次重复这个过程。同理,每隔N天执行一次则会在每个月的1号执行一次,然后每隔N天执行一次,所以就不要奇怪为什么每个月的1号该任务都会执行,哪怕是上个月最后一天才执行了也不例外。因此我们就不能在逻辑上通过减去N,得到N天的任务结果。我们在工作中也遇到过这样的问题,某个产品计划每三天对其数据库进行一次历史归档,为了判断服务器当前空间是否够备份,会判断上次历史备份的大小,当初的设计是我们给每个历史归档以时间进行标识,如,2010-11-26,然后我们备份的时候就会去检查三天前的历史备份大小,比如2010-11-23的备份。但是由于前面讲到的原因,每个月的1号回出现总是找不到上次的历史备份。
       目前我就总结了以上4点稍微需要我们留意,如果大家觉得还有哪些地方值得注意或者文中有误的地方,欢迎提出指正。
阅读(265) | 评论(0) | 转发(0) |
0

上一篇:Cacti系统中修改网络流量Output Type

下一篇:没有了

给主人留下些什么吧!~~