Linux中的计划任务之Crontab

在线课程:https://www.imooc.com/video/4499

读音:

crontab [krɔntæb] 以前读音错误。

linux [ˈlɪnəks] 以前读音错误。

status [ˈstetəs]以前读音错误。

一、应对需求

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

二、crontab介绍

Crontab是一个用于设置周期性被执行的任务的工具。

被周期性执行的任务称为CronJob

被周期性执行的任务列表称为CronTable

三、安装Crontab

安装:

yum install vixie-cron
yum install crontabs

检查cron状态:

service crond status

四、基本组成

配置文件:文件方式设置定时任务

系统服务:crond 每分钟都会从配置文件中刷新定时任务,同时帮我们执行定时任务。

配置工具:crontab 用于调整定时任务

五、配置格式

每晚21:30重启Apache:

30 21 * * * service httpd restart

 

每月1、10、22日的4:45重启Apache:

45 4 1,10,22 * * service http restart

每月1到10日的4:45重启Apache

45 4 1-10 * * service httpd restart

每隔两分钟(偶数分钟)重启Apache服务器

*/2 * * * * service httpd restart

每隔两分钟(奇数分钟)重启Apache服务

1-59/2 * * * service httpd restart

晚上11点到早上7点之间,每隔一小时重启Apache

0 23-7/1 * * * service httpd restart

每天18:00至23:00之间,每隔30分钟重启Apache:

0,30 18-23 * * * service httpd restart
0-59/30 18-23 * * * service httpd restart

总结:

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

六、crontab工具使用

crontab -u root -l # 查看root用户Cron Table
crontab -l # 查看当前用户Cron Table

七、Crontab 配置文件

计划任务既可以通过crontab工具进行编辑,也可以通过/etc/crontab配置进行配置编辑

配置文件路径:/etc/crontab

配置文件格式:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

 

八、Crontab 日志

cron任务执行的日志信息:

tail -f /var/log/cron

九、常见错误-环境变量

用户bash的环境变量在crontab中通常都不存在。

十、常见错误-命令行操作

1、命令行双引号中使用%时,未加反斜线\

 

2、第三和第五个域质检存在“或”操作

原因:第三和第五个域,即日与周是“或”的关系,满足一个就会执行

eg1. 四月的第一个星期日早晨1时59分执行a.sh

59 1 1-7 4 0 /root

但是实际是:每月1号到7号每天都会执行,并且当星期日时也会执行,每月会执行10天

改正版:

59 1 1-7 4 * /root

十一、常见错误-分钟设置误用

1、两小时执行一次

0 */2 * * * date

十二、综合案例解析