侠客的博客

略懂Html,Css,JavaScript,JQuery,Linux,PHP,Java,Vue,Python

linux contab定时任务

crontab 是啥?
crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。通俗来讲就是执行定时任务的一个命令。

先检测服务器是否安装crontab

rpm -qa | grep crontab
[root@proud-path-1 ~]# rpm -qa|grep crontab
crontabs-1.11-6.20121102git.el7.noarch


那么显示服务器已经安装了

如果没有安装呢,那就执行下面的操作

yum -y install vixie-cron 
//    vixie-cron 是 cron 的主程序
yum -y install crontabs
//    crontabs 是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序


crontab的常规命令:

service crond start     //启动服务
service crond stop      //关闭服务
service crond restart   //重启服务
service crond reload    //重新载入配置
service crond status    //查看crontab服务状态


如果系统是centos7以下版本的话,请使用下面的命令

systemctl start crond.service     //启动服务
systemctl stop crond.service      //关闭服务
systemctl restart crond.service   //重启服务
systemctl reload crond.service    //重新载入配置
systemctl status crond.service    //查看crontab服务状态


crontab设置定时任务的语法格式:

sudo vi /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)                                                          分
# |  .------------- hour (0 - 23)                                                            时
# |  |  .---------- day of month (1 - 31)                                                    天
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...                                    月
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat       周(几)
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed


其实大家值看到了这个简单的格式,还有一个很细节的部分,就是时间格式的后面,紧跟着的是user-name,就是执行用户
如果大家漏掉了这个user-name的话
其实crontab定时任务是无法执行成功的
通过查看crond的日志

cat /var/log/cron

大家可以查看到这么一个错误

ERROR (getpwnam() failed)


这个就表示没有执行用户,没有在crontab的语法中增加user-name

然后就没有然后了,搞定了,全部配置完成了

发表评论:

©Copyright 2019 52400073.com Author by xaake,基于 Zblog