Linux之crond定时任务
1. 使用crontab工具配置的定时任务
2. 配置定时任务建议规范
3. 定时任务配置问题导致系统出现故障实例
1. 使用crontab工具配置的定时任务
名称
crontab - 维护单个用户的crontab文件
用法
crontab [-u user] [-l | -r | -e] [-i] [-s]
选项
-l (list)查看crontab文件内容 crontab -l == cat /var/spool/cron/[user]
-e (edit)编辑crontab文件内容 crontab -e == vim /var/spool/cron/[user]
-i 删除crontab文件内容,删除前会提示确认
-r 删除crontab文件内容
-u 指定使用的用户执行
补充说明
1. * * * * * 分别为 分(0-59) 时(0-23) 日(1-31) 月(1-12) 周几(0-6)
2. \%F 在定时任务配置中,%要用\转义
2. 配置定时任务建议规范
书写规范:
① 为定时任务规则加必要的注释
② 执行shell脚本任务前加/bin/sh,以执行权限执行文件
③ 定时任务命令或脚本结尾加
>/dev/null 2>&1 或 &>/dev/null 或 1>/dev/null 2>/dev/null
④ 定时任务命令或程序最好写到脚本里执行
⑤ 在指定用户下执行相关的定时任务
⑥ 生产任务程序不要随便打印输出信息
⑦ 定时任务执行的脚本要规范路径(例:/test/scripts)
调试建议:
① 增加执行任务频率调试任务
② 调整系统时间调试任务(个人环境进行)
③ 通过脚本日志输出调试定时任务
④ 注意:环境变量导致的定时任务故障(java)
⑤ 通过crond定时任务服务日志调试定时任务
⑥ 调试脚本用"sh -x 脚本", 打印输出脚本执行过程
3. 定时任务配置问题导致系统出现故障实例
故障问题:
服务器上发生了No space left on device故障,df -h发现磁盘空间还有剩余,df -i发现文件系统inode占满,
这是由于系统内小文件过多导致的,其中一个可能原因就定时任务配置不规范
解析:
centos5 /var/spool/clientmqueue
centos6 /var/spool/postfix/maildrop
默认定时任务执行时会给root发邮件信息,如果邮件服务不开,就会把邮件存放到上述目录
当定时任务结尾不加&>dev/null的时候,上述目录就会存在大量的小文件,从而导致系统inode被占满
解决方法:
1. 清除邮件目录下的小文件
2. 检查系统内的定时任务配置是否缺少&>dev/null的重定向
静静的学习一阵子儿...