1、认识crond
(1)crond定义
crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
crontab文件存储在保存cron守护程序的作业列表和其他指令的位置。Crond服务会定期(默认一分钟检查一次)检查系统中是否有要执行的任务工作。
(2)认识crontab文件结构
前四行是用来配置crond任务运行的环境变量
① 第一行SHELL变量指定了系统要使用哪个shell,这里是bash
② 第二行PATH变量指定了系统执行命令的路径
③ 第三行MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户,如果MAILTO变量的值为空,则表示不发送任务执行信息给用户
④ 第四行的HOME变量指定了在执行命令或者脚本时使用的主目录。第六至九行表示的含义将在下个小节详细讲述。这里不在多说。
后面的是crond任务计划书写格式
用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:
minute hour day month week command
字段 | 解释 |
---|---|
minute | 表示分钟,可以是从0到59之间的任何整数 |
hour | 表示小时,可以是从0到23之间的任何整数 |
day | 表示日期,可以是从1到31之间的任何整数 |
month | 表示月份,可以是从1到12之间的任何整数 |
week | 表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日 |
command | 要执行的命令,可以是系统命令,也可以是自己编写的脚本文件 |
(3)使用者权限文件
文件 | 说明 |
---|---|
/etc/cron.deny | 该文件中所列用户不允许使用crontab命令 |
/etc/cron.allow | 该文件中所列用户允许使用crontab命令 |
/var/spool/cron/ | 所有用户crontab文件存放的目录,以用户名命名 |
2、配置crond环境
(1)CentOS7默认已经安装crontab,如若没有安装,执行下面命令
yum install crontabs
(2)开启crond服务
systemctl start crond
(3)crond服务自启动
systemctl enable crond
3、上传PHP文件
(1)打开WinSCP软件远程服务器
(2)将提前写好的PHP文件拖到右半侧的目录中代码以及结果如下
<?php
//链接数据库
$conn=mysqli_connect("127.0.0.1","root","","allweather");
if($conn){
echo "链接成功";
$sql="INSERT INTO test VALUES(8);";
mysqli_query($conn,"set names utf-8");
mysqli_query($conn,$sql);
}else{
echo "链接失败";
}
?>
4、制定任务计划并验证是否执行
(1)输入下面指令制定任务计划
crontab -e
(2)输入下面命令之后输入:wq!保存文件
(3)重启crond服务
service crond restart
(4)查看任务计划表
crontab -l
(5)之前的数据表内容如下
(6)一段时间后,查看数据表内容
上面可以看出PHP文件已经执行了四次,说明任务计划正在实行