Crontab定时器

http://www.osyunwei.com/archives/5039.html

https://www.cnblogs.com/longjshz/p/5779215.html

定时执行PHP文件:http://blog.csdn.net/u014359108/article/details/51832273



Crontab命令


Crontab命令常见于Unix和类Unix的系统中,用于设置周期性被执行的指令。

Linux下,定时配置文件都在/etc/crontab下。直接用crontab -e命令创建的定时任务是放在临时文件夹的,重启会删除,并且与/etc/crontab文件无关联。

 crontab命令被用来提交和管理用户需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。

Linux下的任务调度分为两类:系统任务调度和用户任务调度。

系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。



添加定时任务

0.> 打开crontab文件 ,并添加需要定时的任务

sudo vim /etc/crontab

0.2> 添加定时任务

# 定时任务定义格式:分 时 天 月 天(周0~6) 用户名 欲执行的命令
* * * * * root /var/www/html/command.sh 

0.3> 重载和查看定时任务

## 加载任务,使之生效
crontab /etc/crontab
## 查看任务
crontab -l



crontab文件详解:(示例)

crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置;命令段格式:minute hour day month week who command 
其中:
minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
who: 执行命令的角色
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

在以上各个字段中,还可以使用以下特殊字符:

星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。

逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”

中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”

正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。


注:1. 请务必确保任务中的角色有权限执行对应的命令

2. 修改crontab文件后,不需要做任何操作,也不需要重启crontab,任务就可以自动执行。

CentOS 7中crontab常用命令:

/bin/systemctl start crond.service
/bin/systemctl stop crond.service
/bin/systemctl restart crond.service
/bin/systemctl reload crond.service
/bin/systemctl status crond.service

注:定时任务如果未执行,请使用 cat /var/log/cron 命令查看crontab日志。








举报

© 著作权归作者所有


1