1、相关概述
linux下工作调度的种类有:at , cron
一种是例行性的,就是每隔一定的周期来办某事。
一种是突发性的,就是做完这一次没有以后。
crontab这个命令所设置的工作将会一直循环进行下去,循环的时间可以是分钟、小时、每周、‘每月、每年等,crontab除了命
令执行外,也可以编辑/etc/crontab来支持,而crond就是让crontab生效的服务。
2、crond 和 crontab :
crond的概念和crontab是不可分割的。crontab是一个命令,常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准
输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语chronos(χρόνος),原意是时间。而crond正是它的守护
进程。
3、crond 定时任务
Crond是linux系统用来定期执行命令或指定程序任务的一种服务或软件。一般情况下,我们安装完CentOS5/6linux操作系统之后,默认便会启动
Crond任务调度服务。Crond服务会定期(默认每分钟检查一次)检查系统中是否有要执行的任务工作。如果有,便会根据其预先设定的定时任务规
则自动执行该定时任务工作。这个Crond定时任务服务就相当于我们早上使用的闹钟一样。
linux系统中定时任务调度的工作可以分为以下两种情况:
1)、 linux系统自身定期执行的任务工作:系统周期性自行执行的任务工作,如轮询系统日志、备份系统数据、清理系统缓存等,
这些任务无须我们人为干预。例如:
2)、用户执行的任务工作:某个用户或系统管理员定期要做的工作,例如每隔5分钟和互联网上的时间服务器进行时间同步,
每天晚上0点备份网站站点数据及数据库数据,一般这些工作需要由用户自己来设置。
3)、crond服务是运行的程序,而crontab是用户用来设置定时规则的命令。
crontab -l 查看用户设置的定时任务)
crontab-e 编辑定时任务配置文件
crontab-u 设定某个用户的crontab服务只有root用户才能执行
crontab-r 删除crontab文件
crontab-i 删除crontab文件给出提示
4)crontab语法格式中时间段的含义
段 | 含义 | 取值范围(整数) |
第一段 | 表示分钟 | 00-59(00也可以是0) |
第二段 | 表示小时 | 00-23 |
第三段 | 表示日、天 | 01-31 |
第四段 | 表示月份 | 01-12 |
第五段 | 表示星期、周几 | 0-7(0和7都表示周日) |
提示:记忆口诀:分时日月周 |
特殊符号 | 含义 |
* | *号表示任意时间都,实际就是“每”的意思。如:00 23 * * * cmd表示每月每周每日的23:00都执行cmd任务。 提示:定时任务如果是到小时,口述时就最多提每天。 分位上的*就等价于0-59,表示每分。 |
- | 减号,表示分隔符,表示一个时间范围,区间段,如17-19点,每天的17,18,19点的00分执行任务。00 17-19 * * * cmd。就是17,18,19点整点分别执行的意思。 |
, | 逗号,表示分隔时段的意思。30 17,18,19 * * * /bin/sh /scripts/test.sh 表示每天17、18、19点的半点时刻执行/scripts/test.sh脚本。 |
/n | n代表数字,即“每个n单位时间”,例如:每10分钟执行一次任务,可以写成*/10 * * * * cmd,其中*/10的意思是每10分钟执行cmd命令。 |
4、用户定时任务例子
基本格式 :
* * * * * command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
每个一分钟执行一次 test.sh