天天看点

centos7.2 利用crontab执行定时计划任务简介服务配置日志

此文章已不再更新,查看最新版文章于更多内容:

《centos7 利用crontab执行定时计划任务》 

-------------------------------------------------- 分隔符 --------------------------------------------------

简介

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

服务

    查看cron的状态,设为开机启动

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

配置

    编辑crontab 的配置文件,设置定时任务。

# 编辑用户的定时任务,指定的执行的用户,默认为当前执行命令的用户
crontab -u {用户名} -e            

配置详解

# crontab基本格式

# +---------------- minute  分钟(0 - 59)

# |  +------------- hour    小时(0 - 23)

# |  |  +---------- day     日期(1 - 31)

# |  |  |  +------- month   月份(1 - 12)

# |  |  |  |  +---- week    星期(0 - 7) (星期天=0 or 7)

# |  |  |  |  |

格式为:

# *  *  *  *  *  用户 要运行的命令

例如:

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

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

00 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次) 

----------------------------------------------------------------------------------------------------------- 

3. 保存退出后,即可生效,默认crontab会每分钟检查一次任务文件的。

# 列出用户的定时任务列表
crontab -u {用户名} -l 

# 还可以直接写到crond的主配置文件内,默认执行者为root。
vim /etc/crontab            

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

日志

   另外,执行的计划任务,日志在 /var/log/cron 中可以查看执行日志,以供分析查看

好了,计划任务就是这么简单了