快捷
导航

Linux下的定时任务设置

编辑:大风刮过
时间:2021-04-06
阅读:1927

crontab简介

crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。

crontab文件的含义

用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:

minute hour day month week command

其中:

minute:表示分钟,可以是从0到59之间的任何整数。

hour:表示小时,可以是从0到23之间的任何整数。

day:表示日期,可以是从1到31之间的任何整数。

month:表示月份,可以是从1到12之间的任何整数。

week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。

command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件.

crontab的时间表达式

基本格式 :

*****command

分时日月周命令

几个例子:

0 6 * * * echo "Good morning." >> /tmp/test.txt          //每天早上六点                                    

0 */2 * * * echo "Have a break now." >> /tmp/test.txt     //每两个小时                                  

0 23-7/2,8 * * * echo "Have a good dream" >> /tmp/test.txt //晚上11点到早上8点之间每两个小时和早上八点                                  

0 11 4 * 1-3 command line              //每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点                                  

0 4 1 1 * command line SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root      //1月1日早上4点                          

0 1 * * * * root run-parts /etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本                                 

0 2 4 * * * root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本                                 

22 4 * * 0 root run-parts /etc/cron.weekly //每星期执行/etc/cron.weekly内的脚本                                  

42 4 1 * * root run-parts /etc/cron.monthly  //每月去执行/etc/cron.monthly内的脚本  

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

5,15,25,35,45,55,16,17,18 * * * command   //每天的下午4点、5点、6点的5 min、15 min、25 min、35 min、45 min、55 min时执行命令。

00 15 * * 1,3,5 shutdown -r +5 //每周一,三,五的下午3:00系统进入维护状态,重新启动系统。

1 * * * * bin/account   //每小时的1分执行用户目录下的bin/account这个指令:

10,40 * * * * innd/bbslink //每小时的10分,40分执行用户目录下的innd/bbslin这个指令      

20 3 * * * (/bin/rm -f expire.ls logins.bad;bin/expire$#@62;expire.1st)//每天早晨三点二十分执行用户目录下如下所示的两个指令(每个指令以;分隔):         

12,55 3 4-9 1,4 * /bin/rm -f expire.1st$#@62;$#@62;mm.txt //每年的一月和四月,4号到9号的3点12分和3点55分执行/bin/rm -f expire.1st这个指令,并把结果添加在mm.txt这个文件之后(mm.txt文件位于用户自己的目录位置)。

crontab命令介绍

查看crontab服务状态:

service cron status                                                                        

手动启动crontab服务:

service cron start                                                                         

手动停止crontab服务:

service cron stop                                                                         

常用crontab命令:

查看当前用户的定时任务:

[root@AY1404010929194851d3Z:~]# crontab -l                                              

查看指定用户的定时任务:

[root@AY1404010929194851d3Z:~]# crontab -uroot -l                                       

追加crontab定时任务:

[root@AY1404010929194851d3Z:~]# crontab -e                                             

注:定时任务结尾加 >/dev/null 2>&1(在调试好脚本程序后,应尽量把DEBUG及命令输出的内容信息屏蔽掉,如果确实需要输出日志,可定向到日志文件里,避免产生系统垃圾。)

如:

1. [root@angelT ~]# crontab -l

2. #backup www to /backup

3. 00 00 * * * /bin/sh /server/scripts/www_bak.sh >/dev/null  2>&1

有关/dev/null的说明:

/dev/null为特殊的字符设备文件,表示黑洞设备或空设备。

>/dev/null 2>&1的作用:

如果定时任务规范结尾不加 >/dev/null 2>&1,很容易导致硬盘inode空间被占满,从而系统服务不正常(var/spool/clientmqueue邮件临时队列目录,垃圾文件存放于此,如果是centos 6.4系统,默认不装sendmail服务,所以不会有这个目录。)

有关重定向的说明:

1. >或1>   输出重定向:把前面输出的东西输入到后边的文件中,会删除文件原有内容。

2. >>或1>>追加重定向:把前面输出的东西追加到后边的文件中,不会删除文件原有内容。

3. <或<0   输入重定向:输入重定向用于改变命令的输入,指定输入内容,后跟文件名。

4. <<或<<0输入重定向:后跟字符串,用来表示“输入结束”,也可用ctrl+d来结束输入。

5. 2>       错误重定向:把错误信息输入到后边的文件中,会删除文件原有内容。

6. 2>>     错误追加重定向:把错误信息追加到后边的文件中,不会删除文件原有内容。

7. 标准输入(stdin):代码为0,使用<或<<。

8. 标准输出(stdout):代码为1,使用>或>>。正常的输出。

9. 标准错误输出(sederr):代码为2,使用2>或2>>。

特殊:

10. 2>&1就是把标准错误重定向到标准输出(>&)。

11. >/dev/null 2>&1 等价于 1>/dev/null  2>/dev/null

相关文章

APP定制开发,您有充足的理由选择我们

互联网流量在以极快的速度向移动端倾斜,我们始终身在其中,专注研发软件,经验丰富,流程娴熟

多语言专业开发团队
10年项目开发经验,从桌面开发
到移动开发从单系统开发到多系统开发
我们精通代码,经验丰富
坚持输出高品质系统
10年项目开发经验,从桌面开发
到移动开发从单系统开发到多系统开发
我们精通代码,经验丰富
完善兼容各种主流设备
10年项目开发经验,从桌面开发
到移动开发从单系统开发到多系统开发
我们精通代码,经验丰富
稳定靠谱的售后支持
10年项目开发经验,从桌面开发
到移动开发从单系统开发到多系统开发
我们精通代码,经验丰富

返回顶部