博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux 中的计划任务之crontab
阅读量:6232 次
发布时间:2019-06-21

本文共 3667 字,大约阅读时间需要 12 分钟。

hot3.png

linux中的计划任务crontab

crontab:可以从定时重复工作中解脱出来

工作中遇到的困难

  • 每分钟需要执行一个程序检查系统运行状态
  • 每天凌晨需要对过去一天的业务数据进行统计
  • 每个星期需要把日志文件备份
  • 每个月需要把数据库进行备份

crontab 简介

  • 用于设置周期性被执行的任务工具。
  • 被周期性执行的任务我们称为Cron job
  • 周期性执行的任务列表称为Cron Table

crontab 实践内容简介

  • 相关工具
  • 安装并检查crontab服务
  • crontab的基本组成
  • crontab的配置文件格式
  • crontab工具的使用
  • crontab 的日志
  • crontab 常见的错误

检查cron服务

  • 检查crontab工具是否安装:crontab -l
  • 检查crontab服务是否启动:service crond status

安装cron

  • yum install -y vixie-cron
  • yum install crontabs

案例

[root@xuexi-001 ~]# crontab -e*/1 * * * * date >> /tmp/log.txt# 每分钟都打印当前时间到log.txt 文件中[root@xuexi-001 ~]# tail -f /tmp/log.txt 2018年 10月 05日 星期五 00:00:01 CST2018年 10月 05日 星期五 00:01:01 CST2018年 10月 05日 星期五 00:02:01 CST# tail -f 显示文件的最后几行 ,tail -2 显示文件的最后两行

crontab 基本组成

  • crond 服务 --系统服务
  • 配置文件 --以文件方式设置定时任务
  • 配置工具 -- 用于调整定时任务

crontab 配置文件格式

  • * * * * * COMMAND
  • 第一个 * :分钟 0-59
  • 第二个 * :小时 0-23
  • 第三个 * :日期 1-31
  • 第四个 * :月份 1-12
  • 第五个 * :星期 0-7(0或者7代表星期天)

案例

  • 每晚的21:30重启apache
30 21 * * * service httpd restart
  • 每月的1、10、22日的4:45重启apache
45 4 1,10,22 * * service httpd restart
  • 每月的1到10日的4:45重启apache
45 4 1-10 * * service httpd restart
  • 每隔两分钟重启apache
*/2 * * * * service httpd restart # 偶数分钟1-59/2 * * * * service httpd restart # 奇数分钟
  • 晚上11点到早上7点之间,每隔一小时重启apache
0 23-7/1 * * * service httpd restart
  • 每天18:00到23:00之间每隔30分钟重启apahce
0,30 18-23 * * * service httpd restart0-59/30 18-23 * * * service httpd restart

小结

  • * 表示任何时候都匹配
  • 可用“A,B,C” 表示A或者B或者C时执行命令
  • 可用“A-B”表示A-B之间时执行命令
  • 可用“*/A” 表示A分钟(小时等)执行一次命令

crontab工具的使用

crontab 选项:

  • -u: define user
  • -e: edit user's crontab
  • -l: list user's crontab
  • -r: delete user's crontab

案例

1、给root 用户添加计划任务:每隔两分钟(奇数分钟)打印 “JISHU**********”

[root@xuexi-001 ~]# crontab -e1-59/2 * * * * echo "JISHU***********************"

2、添加普通用户 crontester 并且添加计划任务:每隔两分钟(偶数分钟)打印“EVEN**************”

[root@xuexi-001 ~]# useradd crontester[root@xuexi-001 ~]# crontab -e -u crontester [root@xuexi-001 ~]# crontab -l -u crontester0-58/2 * * * * echo "EVEN ************"

查看日志

[root@xuexi-001 ~]# tail -f /var/log/cronOct  5 00:51:01 xuexi-001 CROND[1906]: (root) CMD (echo "JISHU***********************")Oct  5 00:52:01 xuexi-001 CROND[1911]: (crontester) CMD (echo "EVEN ************")

crontab 配置文件

  • 全局(系统)配置文件
  • /etc/crontab
  • 注意格式

crontab 日志

  • /var/log/cron 文件保存着cron的任务执行记录
[root@xuexi-001 ~]# cd /var/log/您在 /var/spool/mail/root 中有新邮件[root@xuexi-001 log]# ls cron*cron  cron-20180611  cron-20180926  cron-20181001[root@xuexi-001 log]# ls -l cron*-rw-------  1 root root 23564 10月  5 01:10 cron-rw-------. 1 root root 10917 6月  11 21:08 cron-20180611-rw-------. 1 root root 11543 9月  26 20:13 cron-20180926-rw-------  1 root root  4043 10月  1 13:22 cron-20181001[root@xuexi-001 log]# tail -f cronOct  5 01:04:01 xuexi-001 CROND[2001]: (crontester) CMD (echo "EVEN ************")Oct  5 01:04:49 xuexi-001 crontab[2005]: (root) LIST (root)Oct  5 01:04:49 xuexi-001 crontab[2005]: PAM pam_end: NULL pam handle passedOct  5 01:05:01 xuexi-001 CROND[2007]: (root) CMD (echo "JISHU***********************")Oct  5 01:06:01 xuexi-001 CROND[2014]: (crontester) CMD (echo "EVEN ************")Oct  5 01:07:01 xuexi-001 CROND[2020]: (root) CMD (echo "JISHU***********************")Oct  5 01:08:01 xuexi-001 CROND[2026]: (crontester) CMD (echo "EVEN ************")Oct  5 01:09:01 xuexi-001 CROND[2032]: (root) CMD (echo "JISHU***********************")

crontab 常见错误

  • 环境变量
  • 命令行双引号中使用%时,未加反斜线\
  • 第三和第五个域之间执行的是“或”操作
  • 分钟设置误用

  • 第三和第五个域之间执行的是“或”操作

案例

  • 四月的第一个星期日早晨1时59分钟运行a.sh
59 1 1-7 4 * test`date + \%w` -eq 0 && /root/a.sh
  • 分钟设置误用

案例

  • 两小时运行一次
错误示例:* 0,2,4,6,8,10,12,14,16,18,20,22 * * * date正确示例:0 */2 * * * date

说明

在使用分钟的时候如果使用的分钟时使用 * 那么就是每两个小时的每分钟都会执行。正确的应该设置为 0,还有就是在使用分钟设置时,要注意分钟的约束,比如1-10/2,先满足1-10之间的每两分钟也就是1,3,5,7,9的时候执行,在11分钟的时候就不执行了。

转载于:https://my.oschina.net/u/3850965/blog/2222907

你可能感兴趣的文章
苹果一体机系统恢复_苹果iOS新功能 iPhone无需连电脑从云端进行系统恢复
查看>>
linux tomcat 进程杀掉_Zking干货集丨Linux相关软件安装指南
查看>>
apache配置完django后启动失败_如何让Django项目在自己的服务器上跑起来(Step Three)...
查看>>
昆山立讯电子工程师_中国内地首家iPhone代工厂诞生!立讯精密欲成富士康第二?...
查看>>
华为手机主界面的返回键怎么调出来_最全的华为手机摄影教程~最全的手机相机使用方法详解...
查看>>
codeforce能用万能头文件吗_知乎热议 | 嵌入式开发中C++好用吗?
查看>>
unity抠人像原理_不会抠图?保姆级抠图教程!手把手教你抠图(一)
查看>>
手机数字雨_你的手机真的防水吗?卢伟冰强行科普P2i,IP68防水防尘真有用?...
查看>>
tps协议和onvif协议_安全研究人员警告WS-Discovery协议被被用于大规模DDoS攻击
查看>>
扫地机器人半湿拖布_米家扫拖机器人评测:能扫能拖,一次性搞定
查看>>
量纲对回归结果的影响_周度专题 | 纯碱现货价格影响因素的统计分析(上)
查看>>
tensorflow模型保存后继续训练_Tensorflow笔记:模型保存、加载和Fine-tune
查看>>
估计一些物品的质量_大部分物流运输管理中心都会派送的物品里应用了rfid
查看>>
分数的大小比较优秀教案_20分钟如何写好教师资格证面试教案?
查看>>
纵向取模需要自己倒叙吗_婚后的女人需要努力吗?看完这四点,每个人都会有自己的答案...
查看>>
导入公用方法_销售明细导入开票模块的产品思考
查看>>
主从切换_SpringBoot 多数据源配置+动态数据源切换+多数据源事物配置实现主从数据库存储分离...
查看>>
变形 圆形_「Photoshop教程」使用变形工具和扭曲滤镜实现极坐标照片效果
查看>>
如何使用 mega unity_MEGA构建系统发育树,以及EvolView & iTOL 的入门心得.
查看>>
华三交换机mode是什么意思_弱电工程师忘记了交换机和路由器的密码后如何处理?...
查看>>