1.crontab简介
crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。
2.确定服务器是否开启定时任务计划服务
命令: service crond status 确认定时任务是否开启
命令: service crond start 开启服务
命令: service crond stop 关闭服务
命令: service crond restart 重启服务
命令: service crond reload 重新载入配置
3.crontab格式说明
格式为 : * * * * * *
minute | hour | day of mouth | month of year | day of week | |
* | * | * | * | * | |
含义 | 每个小时的第几分钟执行该任务 | 每天的第几个小时执行该任务 | 每月的第几天执行该任务 | 每年的第几个月执行该任务 | 每周的第几天执行该任务 |
取值范围 | 0~59 | 0~23 | 1~31 | 1~12 | 0~6(0表示周天) |
示例:
5 * * * * Command 每小时的第5分钟执行一次命令
30 18 * * * Command 指定每天下午的 6:30 执行一次命令
30 7 8 * * Command 指定每月8号的7:30分执行一次命令
30 5 8 6 * Command 指定每年的6月8日5:30执行一次命令
30 6 * * 0 Command 指定每星期日的6:30执行一次命令
5,15,25,35,45,55 16,17,18 * * * Command 每天的下午4点、5点、6点的5 min、15 min、25 min、35 min、45 min、55 min时执行命令。
每五分钟执行 */5 * * * *
每小时执行 0 * * * *
每2小时执行 0 */2 * * *
每天执行 0 0 * * *
每周执行 0 0 * * 0
每月执行 0 0 1 * *
每年执行 0 0 1 1 *
4.开始创建一个定时任务
crontab -e 编辑某个用户的cron服务
crontab -l 列出某个用户cron服务的详细内容
crontab -r 删除某个用户的cron服务
5.查看定时任务的执行情况
tail -n 100 /var/log/cron
6.注意
crontab执行shell脚本的环境与直接在命令行执行shell脚本的环境可能是不一样
即crontab执行shell脚本时可能有的命令报错
解决如下,脚本中添加:
# crontab环境下环境变量与默认用户环境变量不同
source /etc/profile
source ~/.bash_profile