Linux下:定时任务——执⾏脚本
⼀、简单介绍LInux下的定时任务服务:crond服务
crond是Linux系统⽤来定期执⾏命令或指定程序的服务的⼀种服务或软件。
⼀般情况下安装完成Linux操作系统之后,默认便会启动Crond任务调⽤服务。
Crond服务会定期(默认⼀分钟检查⼀次)检查系统中是否有要执⾏的任务⼯作。如果有,便根据其预先设定的定时任务规则⾃动执⾏该定时任务⼯作。
⼆、设置定时任务,两种⽅法
1、crontab命令
crontab -e 进⼊当前⽤户的定时任务vim编辑模式
crontab -l 查看当前⽤户的定时任务配置
crontab -u ⽤户名 -l 查看指定⽤户的定时任务设置
注:crontab { -l | -e } 实际上就是在操作/var/spool/cron/当前⽤户这样的⽂件,root⽤户就是/var/spool/cron/root
2、直接编辑/etc/crontab ⽂件,即vi /etc/crontab,添加相应的定时任务
注:crontab -e配置是针对当前⽤户的定时任务,⽽编辑/etc/crontab是针对系统的定时任务
linux循环执行命令脚本三、定时任务编写规则说明
# 直接编辑/etc/crontab ⽂件
minute - 从0到59的整数
hour - 从0到23的整数
day - 从1到31的整数 (必须是指定⽉份的有效⽇期)
month - 从1到12的整数 (或如Jan或Feb简写的⽉份)
dayofweek - 从0到7的整数,0或7⽤来描述周⽇ (或⽤Sun或Mon简写来表⽰)
root - 表⽰以root⽤户⾝份来运⾏
command - 需要执⾏的命令(可⽤as ls /proc >> /tmp/proc或执⾏⾃定义脚本的命令)
run-parts表⽰后⾯跟着的是⼀个⽂件夹,要执⾏的是该⽂件夹下的所有脚本
对于以上各语句,星号(*)表⽰所有可⽤的值。例如*在指代month时表⽰每⽉执⾏(需要符合其他限制条件)该命令。
整数间的连字号(-)表⽰整数列,例如1-4意思是整数1,2,3,4
指定数值由逗号分开。如:3,4,6,8表⽰这四个指定整数。
符号“/”指定步进设置。“/<interger>”表⽰步进值。如0-59/2定义每两分钟执⾏⼀次。
# crontab -e 同上,只是不需要加⽤户
四、其他
1、crontab 语法格式中特殊符号含义如下表
特殊符号含义
* *号,表⽰任意时间都,实际就是“每”的意思
- 减号表⽰分隔符,表⽰⼀个时间范围,区间段,如17-19点,例如:每天的17,18,19点的00分执⾏任务。00 17-19 * * * cmd
,逗号,表⽰分隔时段的意思例如每天的5点10点00分执⾏任务,00 5,10 * * * cmd
/n n代表数字,即“每隔n单位时间”,例如:每10分钟执⾏⼀次任务可以写成/*10 * * * * cmd,其中,/10,的范围是0-59,因此也可以写成0-59/10
2、定时任务⽇志
# 不记录⽇志,在每⼀⾏定时任务后⾯加上:
> /dev/null 2>&1
# ⽇志记录追加到指定⽂件
>> /path/mylog.log  2>&1
说明:
> /dev/null 将输出重定向到/dev/null,这是个空设备,也就是忽略其输出。
2>&1  是将错误输出到标准输出,如果在控制台调试,也就是屏幕上,⽅便调试。
有3个默认的i/o,0是标准输⼊,⼀般是键盘;1是标准输出,⼀般是屏幕了;2是标准错误。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。