Linux的计划任务
本人qq群也有许多的技术文档,希望可以为你提供一些帮助(非技术的勿加)。
QQ群: 281442983 (点击链接加入群:http://jq.qq.com/?_wv=1027&k=29LoD19) QQ:1542385235
一、检查相关服务
1、检查crond服务
service crond status
安装服务
yum install vixie-cron
2、检查crontab配置工具
crontab -l
安装crontab
yum install crontabs
二、设置计划任务
1、查看已有的计划
[root@localhost ~]# crontab -l */1 * * * * date >> /tmp/log.txt */1 * * * * sleep 30s; date >> /tmp/log.txt
每一行表示一个计划。每一行的左边有5颗*表示计划执行的时间 右边是需要执行的代码。
在crontab的配置文件中有关于5颗*的解释。
[root@localhost ~]# cat /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # 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
从上面的解释可以看出,每条计划的最小执行时间只能设置到每分钟执行一次。那么如何设置一个每隔30s执行一次的计划呢,通过设置两条相同的计划,但是第二条会在执行的时候 sleep 30s。
2、编辑计划
crontab -e
3、下面是几个简单的例子
每分钟执行一次。
* * * * * command
每30分钟执行一次。
0,30 * * * * command
每天9到10点的第1分钟执行一次。
1 9-10 * * * command
每隔2天的10点的第1分钟执行一次。
1 10 */2 * * command
4、关于上面例子的特殊符号解释
*:代表所有可能的值。
,:指定一个列表范围,例如,"1,3,5,7,9"
-:指定一个整数范围,例如,"1-5" 表示 "1,2,3,4,5"
/:指定时间的间隔频率,例如、"0-23/2" 表示每两小时执行一次。
5、查看计划执行的日志
[root@localhost ~]# cat /var/log/cron Sep 13 12:33:02 localhost run-parts(/etc/cron.daily)[1277]: finished logrotate
三、注意事项
1、command中涉及文件路径时写全局路径。
2、系统自动执行任务调度时,是不会加载任何环境变量的。
本人qq群也有许多的技术文档,希望可以为你提供一些帮助(非技术的勿加)。
QQ群: 281442983 (点击链接加入群:http://jq.qq.com/?_wv=1027&k=29LoD19) QQ:1542385235
我的淘宝店,可以进去逛逛噢:https://shop108912636.taobao.com/index.htm?spm=2013.1.w5001-7867000954.3.1d29318dPlLar7&scene=taobao_shop