CentOS 7 定时计划任务crontabs安装设置

概述 

  就像在windows上有计划任务一样,centos7 自然也有计划任务,而且设置更为灵活,好用。centos7 上可以利用crontab 来执行计划任务, 依赖与 crond 的系统服务,这个服务是系统自带的,可以直接查看状态,启动,停止。
 
第一步:安装 crontabs服务并设置开机自启

首先确认一下,服务器上是否有CronTabs,如果有的话,这一步可以忽略。
运行:systemctl status crond (查看状态),如果有绿色active等字样,说明有安装,那么直接调到第二步。
否则执行下面的命令:

yum install crontabs
systemctl enable crond (设为开机启动)
systemctl start crond(启动crond服务)
systemctl status crond (查看状态)

第二步:设置用户自定义定时任务

vi /etc/crontab (习惯nano的可以用nano,安装nano命令 yum install nano -y)

可以看到:
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

即:
分钟(0-59) 小时(0-23) 日(1-31) 月(11-12) 星期(0-6,0表示周日) 用户名 要执行的命令

/30 root /usr/local/mycommand.sh (每天每30分钟执行一次 mycommand命令)

  • 3 * root /usr/local/mycommand.sh (每天凌晨三点,执行命令脚本,PS:这里由于第一个的分钟没有设置,那么就会每天凌晨3点的每分钟都执行一次命令)

0 3 * root /usr/local/mycommand.sh (这样就是每天凌晨三点整执行一次命令脚本)

/10 11-13 root /usr/local/mycommand.sh (每天11点到13点之间,每10分钟执行一次命令脚本,这一种用法也很常用)

10-30 root /usr/local/mycommand.sh (每小时的10-30分钟每分钟执行一次命令脚本,共执行20次)

10,30 * root /usr/local/mycommand.sh (每小时的10,30分钟分别执行一次命令脚本,共执行2次

第三步:保存生效
加载任务,使之生效:crontab /etc/crontab
这里如果报错,去检查一下是不是多了*之类的。

查看任务:crontab -l
$ crontab -u 用户名 -l (列出用户的定时任务列表)

PS:特别注意,crond的任务计划, 有并不会调用用户设置的环境变量,它有自己的环境变量,当你用到一些命令时,比如mysqldump等需要环境变量的命令,手工执行脚本时是正常的,但用crond执行的时候就会不行,这时你要么写完整的绝对路径,要么将环境变量添加到 /etc/crontab 中。

举例子,你如果要重启某服务,可能在系统中直接输入 xxx restart 就可以了,但是在Cron里不行,需要输入/etc/init.d/xxx restart . 或者写明具体的绝对路径。

计划任务就是这么简单了,但是计划任务,执行的语句如果是多条,则需要用药shell脚本,自己先写一个shell脚本,然后在计划任务中,执行这个脚本即可。至于shell脚本的写法, 这里不赘述。

另外查看计划任务执行的日志可以到/var/log目录去找到cron开头的文件去查看。

   

黑公网安备 23010302001330 黑ICP备16006342号

Copyright © 2005 淘主机 Taohost.com , All Rights Reserved

淘主机供应商:WHMCS管理系统金盾防火墙阿里云VEDNS 安全软件推荐: 服务器安全狗

 
QQ在线咨询
售前咨询热线
021-80392966
售后服务热线
021-80392966