周期执行的任务一般由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 16,17,18 * * * 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=2115while [ "$be_s" -le "$en_s" ] doecho "-----">/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定时执行任务命令详解