前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux计划任务详解,Linux计划任务详解

linux计划任务详解,Linux计划任务详解

作者头像
全栈程序员站长
发布2022-09-14 11:09:50
4.6K0
发布2022-09-14 11:09:50
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

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

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

1、crontab命令选项

# crontab -u

-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。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/158436.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年7月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档