Crontab 定时任务
用来提交和管理用户的需要周期性执行的任务
定时任务cron表达式
crontab 我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本
编辑定时任务使用crontab -e ,相当于vi /var/spool/cron/root,但它可以检查语法
查看定时任务使用crontab –l,相当于cat /var/spool/cron/root(root对应用户名,不同的用户可以不同的定时任务)
用户自定义的定时任务的格式:分 时 日 月 周 cmd,中间用空格分隔
周和日尽量不要同时用cron表达式符号释义
符号 |
释义 |
举例 |
* |
表示任意时间都,实际就是“每”的意思 |
小时上的*等价于00-23 分钟上的*等价于0-59 |
- |
表示时间范围,区间段 |
17-19点,即17点到19点,相当于17,18,19 |
, |
表示分隔时间段的意思 |
30 17,18,19 * * *表示每天17,18,19点30分钟 |
/n |
表示每隔n单位时间执行一次任务 |
*/10 * * * * 表示每10分钟执行一次 |
|
|
|
使用者权限文件
文件 |
说明 |
/etc/cron.deny |
该文件中所列用户不允许使用crontab命令 |
/etc/cron.allow |
该文件中所列用户允许使用crontab命令 |
/var/spool/cron/ |
所有用户crontab文件存放的目录,以用户名命名 |
指令选项说明含义表
参数名称 |
含义 |
指定示例 |
-l(是字母) |
显示用户crontab文件内容l 为list缩写 |
crontab –l |
-e |
进入vi编辑用户crontab文件,e为edit缩写 |
crontab -e |
-i |
删除用户crontab文件前确认提示 |
crontab -ri |
-r |
从crontab目录中删除用户crontab文件 |
crontab -r |
-u user |
指定使用者 |
crontab -u 15b883 -l |
查看crond是否开启
[root@15b883 ~]# chkconfig --list crond crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off [root@15b883 ~]# /etc/init.d/sshd Usage: /etc/init.d/sshd {start|stop|restart|reload|force-reload|condrestart|try-restart|status} [root@15b883 ~]# /etc/init.d/sshd status openssh-daemon (pid 1112) is running...
提示:
1、我们所说的crond服务是运行的程序,而crontab命令用户来设置定时规则的命令。
2、crond服务是企业生产工作中常用的重要服务,at和anacron很少使用,可以忽略
3、几乎每个服务器都会用到crond服务
4、上千服务器可以开发分布式定时任务项目方案
cron时间表达式实例
30 3,12 * * * /bin/sh /scripts/15b883.sh 每天3点30分和12点30分执行 30 */6 * * * /bin/sh /scripts/15b883.sh 每隔6小时的半点执行,相当于6,12,18,24(?) */n==0/n 30 8-18/2 * * * /bin/sh /scripts/15b883.sh 早晨8点到下午18点之间每隔2小时的半点执行,相当于8,10,12,14,16,18时的半点 30 21 * * * /application/apache/bin/apachectl graceful 每晚21点半重启apache服务 45 4 1,10,22 * * /application/apache/bin/apachectl graceful 每月1号,10号,22号的凌晨4点45重启apache 10 1 * * 6,0 /application/apache/bin/apachetcl graceful 每周末的凌晨1点10分重启apache 0,30 18-23 * * */application/apache/bin/apachectl graceful 每天的18点至23点,每隔30分钟重启apache 00 */1 * * */application/apache/bin/apachectl graceful 每隔一小时整点重启apache