专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 Linux计划任务详解

Linux计划任务详解

更新时间:2020-12-24 17:33:14 来源:动力节点 浏览982次

计划任务是系统的常见功能,利用任务计划功能,可以将任何脚本、程序或文档安排在某个最方便的时间运行。任务计划在每次系统启动的时候启动并在后台运行。在Linux系统中,当我们需要在服务器上定时执行一些重复性的事件时使用的,可以通过Linux计划任务程序来运行准备好的脚本、批处理文件夹、程序或命令,在某个特定的时间运行。

 

计划任务在Linux 中一般使用 Crontab,通过 crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 Shell 脚本。Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。另外, 由于使用者自己也可以设置计划任务,所以, Linux 系统也提供了使用者控制计划任务的命令:crontab命令。因此,Linux计划任务整体还是围绕Crontab展开的。

 

1、crontab命令选项

<code># crontab -u <-l, -r, -e></code>

-u指定一个用户

-l列出某个用户的任务计划

-r删除某个用户的任务

-e编辑某个用户的任务

 

2、cron文件写法

可用crontab -e命令来编辑,编辑的是/var/spool/cron下对应用户的cron文件,也可以直接修改/etc/crontab文件。Minute Hour Day Month Week command

分钟 小时 天 月 星期 命令

0-59 0-23 1-31 1-12 0-6 command

 

Minute 每个小时的第几分钟执行该任务

Hour 每天的第几个小时执行该任务

Day 每月的第几天执行该任务

Month 每年的第几个月执行该任务

DayOfWeek 每周的第几天执行该任务,0表示周日

Command 指定要执行的程序 、脚本或命令

 

3、特殊符号的含义

星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。

 

逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”

 

中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”

 

正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

 

4、常用命令

1)cron配置文件路径

# vi /etc/crontab

 

2)重启cron

# /etc/init.d/crond restart

Usage: /etc/rc.d/init.d/crond {start|stop|status|reload|restart|condrestart}

 

3)查看cron服务情况

# service crond status  //crond服务状态

# service crond stop    //crond服务关闭

# service crond start    //crond服务打开

 

4)查看cron日志

# cat /var/log/cron

 

5)别忘了将脚本改成可执行

# chmod +x filename

 

5、常用示例

5  * * * * ls 指定每小时的第5分钟执行一次ls命令

30 5 * * * ls 指定每天的 5:30 执行ls命令

30 7 8 * * ls 指定每月8号的7:30分执行ls命令

30 5 8 6 * ls 指定每年的6月8日5:30执行ls命令

30 6 * * 0 ls 指定每星期日的6:30执行ls命令[注:0表示星期天,1表示星期1,以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。]

30 3 10,20 * * ls 每月10号及20号的3:30执行ls命令[注:“,”用来连接多个不连续的时段]

25 8-11 * * * ls 每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段] */15 * * * * ls 每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令 ]

30 6 */10 * * ls 每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls命令 ]

 

每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件

50 7 * *  * root run-parts  /etc/cron.daily [ 注:

run-parts参数表示,执行后面目录中的所有可执行文件

 

第10、20、30分钟输出到/tmp/cron1.txt:

10,20,30 * * * * echo "第10、20、30分钟输出一次" >> /tmp/cron1.txt

 

以用户lzw.me的身份每两小时就运行某个程序:

0 */2 * * * lzw.me /usr/bin/somecommand >> /dev/null 2>&1

 

我们不难看出Linux计划任务的核心还是Linux crontab 命令,通过Linux crontab 命令来实现各种Linux计划任务。Linux计划任务和Windows计划任务还是有一定的差异的,Linux系统更加专业化,对使用者的要求更高。想要彻底掌握Linux系统,对于初学者来说任重而道远,不过也没有必要担心,本站的Linux教程对Linux进行了全方位的知识总结和讲解,能够帮助我们更快地掌握Linux。


提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>