【Linux基础】crontab定时命令详解

周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron]。cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。
cron的配置文件称为“crontab”,是“cron table”的简写。

一、cron服务
  cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业。
  service crond start    //启动服务
  service crond stop     //关闭服务
  service crond restart  //重启服务
  service crond reload   //重新载入配置
  service crond status   //查看服务状态 

二、cron在3个地方查找配置文件:
1、/var/spool/cron/ 这个目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名,比如tom建的crontab任务对应的文件就是/var/spool/cron/tom。一般一个用户最多只有一个crontab文件。

 三、使用方法

1、添加定时任务 : crontab -e

基本格式 :
*  *  *  *  *  command
分  时  日  月  周  命令

举例一:凌晨3点执行sh命令 
crontab -e 
00 03 * * * /root/scripts/creat_flag.sh
举例二:每天的下午4点、5点、6点的5 min、15 min、25 min、35 min、45 min、55 min时执行命令。
crontab -e
5,15,25,35,45,55 161718 * * * command
举例三:每隔两个小时 
crontab -e
0 */2 * * * echo "Have a break now." >> /tmp/test.txt 
举例四:每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
crontab -e
0 11 4 * 1-3 command line
举例五:每月1号4点去执行/etc/cron.monthly目录内的脚本 
* 4 1 * * root run-parts /etc/cron.monthly 

注意: "run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名

解 释: 

第1列表示分钟1~59 每分钟用或者 /1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
---------------------

2、查看定时任务

crontab -l

3、删除全部定时任务

crontab -r

 四.实战

每日21点启动执行test.sh文件,执行到21:15分后结束。

1.test.sh存放路径为/root/user,脚本内容如下:

#!/bin/bash
be_s=2100
en_s=2115

while [ "$be_s" -le "$en_s" ]
do
        echo "-----">/root/user/1.log   //一定要注意,此处日志文件路径为全路径
        be_s=`date +%H%M`
        echo $be_s
done

2.文件增加可执行权限

cd /root/user
chmod +x test.sh

3.设定定时任务

crontab -e
0 21  * * * /root/user/test.sh  //注意执行文件,必须为全路径

4.查看定时任务

crontab -l

参考文档:

linux 让 crontab 每天03点00 访问一次指定的url

Linux下的crontab定时执行任务命令详解

原文地址:https://www.cnblogs.com/badboy200800/p/9788904.html