Linux 下 crontab 学习与使用

写在前面

crontab 命令用于设置周期性被执行的指令。

一、准备阶段

  1. 检测 crontab 是否安装
rpm -qa | grep crontab
  1. crontab 服务操作
# 开启服务
/bin/systemctl start crond
# 关闭服务
/bin/systemctl stop crond
# 重启服务
/bin/systemctl restart crond
# 重新载入配置
/bin/systemctl reload crond
# 状态
/bin/systemctl status crond
  1. 关于 crontab 配置文件

通过下面命令看到所有存在的 cron 配置文件

cd /etc/
ls cron

配置文件 | 功能
---|---
cron.daily | 每天执行一次
cron.weekly | 每个星期执行一次
cron.monthly | 每月执行一次
cron.hourly | 每个小时执行一次
cron.d | 系统自动定期需要做的任务
crontab | 自定义定时任务执行文件
cron.deny | 用于控制不让哪些用户使用Crontab的功能
  1. crontab 配置文件编写
*       *     *    *      *     command
minute  hour  day  month  week  command
分钟    小时  天   月     星期  命令

命令 | 含义
---|---
minute | 表示分钟,可以是从0到59之间的任何整数。
hour | 表示小时,可以是从0到23之间的任何整数。
day | 表示日期,可以是从1到31之间的任何整数。
month | 表示月份,可以是从1到12之间的任何整数。
week | 表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command | 要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
  • 特殊字符
命令 | 含义
---|---
星号(*) | 代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,) | 可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”。
中杠(-) | 可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”。
正斜线(/) | 可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
  1. 实战:编写一个执行命令

目标:每分钟执行一次我写好的 PHP 命令

  • 创建一个 shell 执行文件,执行 PHP 任务
// 创建一个叫做:web.min.sh 文件
touch web.min.sh
// 编辑文件
vi web.min.sh
// 录入如下内容
#!/usr/bin/env bash
cd /home/wwwroot/www.noasis.cn;
# php index.php welcome send_test;

  • 赋权 脚本文件 并 测试
chmod +x web.min.sh
sh web.min.sh
// 如果获得预期的结果,则说明脚本没有问题
  • 添加计划任务
// 添加用户定时任务
crontab -e
* * * * * /home/web.min.sh
// 列出当前用户定时任务
crontab -l
// 删除当前用户定时任务
crontab -r
  1. crond 开启启动
// 检测是否开启启动
chkconfig --list crond
// 设置开机启动
chkconfig --level 35 crond on 
Last Updated: 8/6/2019, 12:39:09 AM