zoukankan      html  css  js  c++  java
  • linux系统定时任务

    linux系统crond的定时任务

    1、linux系统自身定期执行的任务工作:系统周期性自行执行的任务工作,如轮询系统日志、备份系统数据、清理系统缓存等,这些任务无需我们人为干预。

    2、用户执行的任务工作:某个用户或系统管理员定期要做的任务工作,例如每隔5分钟和互联网上时间服务器进行时间同步,每天晚上0点备份网站站点数据及数据库数据,一般这些工作需要每个用户自行设置才行。

    例如:服务器时间同步

    [root@redhat~]#  crontab  -l

    3、指令选项说明含义表

    -l:查看crontab文件内容。提示:l可理解为list的缩写。

    -e:编辑crontab文件内容,提示:e可理解为edit的缩写。

    -i:删除crontab文件内容,删除前会提示确认。用的很少。

    -u  user:指定使用的用户执行任务。

    特别强调:-i,-r参数在生产中很少用,没什么需求必须要用-e进去编辑即可

    补充:crontab{-l | -e}实际上就是在操作 /var/spool/cron/ 当前用户这样的文件

    4、crontab语法格式中时间段含义

    段                 含义                 取值范围(整数)

    第一段          代表分钟              00-59

    第二段          代表小时              00-23

    第三段          代表日,天          00-31

    第四段          代表月份              00-59

    第五段          代表星期,周几    0-7(0和7都代表星期日)

    5、crontab语法格式中特殊符号含义

    *:*号,表示任意时间都,实际就是“每”的意思。例如:00  23  *  *  *  cmd 表示每月每周每日的 23:00 都执行 cmd 任务。需要注意的是:每个时间位上的 * 表示每,如果位上是 * 就是该位上时间的取值范围,例如:小时上的 * 等价于 00-23。

    经验技巧:定时任务规则如果到小时,口述时就最多提每天。

    分位上的 * 就等价于 0-59,表示每分。

    -:减号,表示分隔符,表示一个时间范围,区间段,如 17-19 点,每天的 17,18,19 的 00 分执行任务。00  17-19  * * * cmd。就是 17,18,19 点整点分别执行的意思。

    ,:逗号,表示分隔时段的意思。30  17,18,19  * * * /bin/sh /scripts/xxx.sh 表示每天 17、18和19 点的半点时刻执行 /scripts/xxx.sh 脚本。也可以和 “-” 结合使用,例如:30  3-5,17-19 * * * /bin/sh /scripts/xxx.sh

    /n:n代表数字,即“每隔n单位时间”,例如:每10分钟执行一次任务可以写成 */10 * * * * cmd,其中, */10,* 的范围是 0-59,因此,也可以写成 0-59/10

    工作中调试时任务的方法:

    1、增加执行任务频率调试任务

         每分钟或者系统时间之后5分钟执行,看看结果对不对

         某些任务不能用于生产环境没有测试机会

         代码、配置变更发布流程:个人开发环境——办公测试环境——IDC机房测试环境——IDC正式环境(分组,灰度发布)

    2、调整系统时间调试任务(不能直接用于生产环境),保持5分钟

    3、通过脚本日志输出调试定时任务

    4、注意一些任务命令带来的问题

    例如:

    标准输出多了

    */1  *  *  *  *  echo  "=="  >>  /tmp/xxx.log  >/dev/null  2>&1

    百分号转义(脚本无需转义)      

    */1  *  *  *  *  tar  zcf  /tmp/xxx_$(date  +%F).tar.gz  /etc/hosts  > /tmp/xxx.log

    5、注意:环境变量导致的定时任务故障(java)

    6、通过crond定时任务服务日志调试定时任务(/var/log/cron)

    7、sh  -x  调试脚本

    企业生产环境案例:linux定时任务生产java服务无法执行问题案例

    http://blog.51cto.com/oldboy/1541515

    crontab生产问题案例及解决过程

    面试题:在系统维护的时候,创建文件提示“NO  space  left  on  device”,请问你这是什么故障?

    解答:磁盘空间block满了或者inode被占满了

    企业案例:inode被填满

    问题:服务器上发生了“NO  space  left  on  device”,df  -h发现没满,为什么?

    centos5  sendmail 临时队列目录  /var/spool/clientmqueue

    centos6  postfix 临时队列目录  /var/spool/postfix/maildrop/

    默认定时任务执行时会给root发邮件,如果邮件服务不开,就会把邮件堆到上述目录

    当定时任务结尾不加 >/dev/null  2>&1 的时候,定时任务就会把上述目录填充大量小文件

    postfix关闭:/etc/init.d/postfix  stop

    例题:

    1、在每周6的凌晨3:15执行/home/shell/collect.pl,并将标准输出和标准错误输出到/dev/null设备,请写出crontab中的语句

    15  03  *  *  6  /usr/bin/perl  /home/shell/collect.pl  >/dev/null  2>&1

    chmod  +x  /home/shell/collect.pl

    15  03  *  *  6  /home/shell/collect.pl  >/dev/null  2>&1

    2、crontab在11月份内,每天的早上6点到12点中,每隔2小时执行一次/usr/bin/httpd.sh怎么实现

    00  06-12/2  *  /bin/sh  /usr/bin/httpd.sh  >/dev/null  2>&1

    3、网站访问慢的案例

    linux  java/http/php中某一个进程占用CPU很高

    解决案例:

    top  -p  32311

    strace  -p  32311

    案例文档:

    http://blog.linuxxeye.com/343.html

    http://www.tuicool.com/articles/YFVbia

    http://blog.sina.com.cn/s/blog  48eef8410101fl4p.html

     

  • 相关阅读:
    准备 FRM 考试——方法、工具与教训
    930. 和相同的二元子数组 前缀和
    1906. 查询差绝对值的最小值 前缀和
    剑指 Offer 37. 序列化二叉树 二叉树 字符串
    815. 公交路线 BFS
    518. 零钱兑换 II dp 完全背包
    1049. 最后一块石头的重量 II dp
    5779. 装包裹的最小浪费空间 二分
    5778. 使二进制字符串字符交替的最少反转次数 字符串 滑动窗口
    474. 一和零 dp
  • 原文地址:https://www.cnblogs.com/axzq/p/9621407.html
Copyright © 2011-2022 走看看