shell定时执行java,shell学习之定时运行作业

当你开始使用脚本时,可能会想要在某个预设时间运行脚本。 Linux系统提供了多个在预选时间运行脚本的方法:at命令和cron表,来安排脚本的运行时间和频率。

一.用at命令来计划执行作业

at命令允许指定Linux系统何时运行脚本。at命令会将作业提交到队列中,指定shell何时运 行该作业。at的守护进程会以后台模式运行,检查作业队列来运行作业。

at命令的基本格式非常简单:at [-f filename] time

默认情况下,at命令会将STDIN的输入放到队列中。你可以用-f参数来指定用于读取命令(脚本文件)的文件名。

time参数指定了Linux系统何时运行该作业。如果你指定的时间已经错过,at命令会在第二天的那个时间运行指定的作业。

在如何指定时间这个问题上,你可以非常灵活。at命令能识别多种不同的时间格式。

标准的小时和分钟格式,比如10:15。

AM/PM指示符,比如10:15 PM。

特定可命名时间,比如now、noon、midnight或者teatime(4 PM)。

标准日期格式,比如MMDDYY、MM/DD/YY或DD.MM.YY。

文本日期,比如Jul 4或Dec 25,加不加年份均可。

当前时间+25 min

明天10:15 PM

10:15+7天

3e7e1aee2aa5a55fcba0cce947641cba.png

输出:

8ec28b0fad0b88a3800393d31f8dc516.png

atq命令可以查看系统中有哪些作业在等待,作业列表中显示了作业号、系统运行该作业的日期和时间及其所在的作业队列。

2f901739f3a738d3c8d57bbd568a8b35.png

一旦知道了哪些作业在作业队列中等待,就能用atrm命令来删除等待中的作业。

365316be16573b2adafe1359c375bd4b.png

只要指定想要删除的作业号就行了。只能删除你提交的作业,不能删除其他人的。

二. cron时间表

Linux系统使用cron程序来安排要定期执行的作业。cron程序会在后台运行并检查一个特殊的 表(被称作cron时间表),以获知已安排执行的作业。

cron时间表采用一种特别的格式来指定作业何时运行。

其格式如下:min hour dayofmonth month dayofweek command

cron时间表允许你用特定值、取值范围(比如1~5)或者是通配符(星号)来指定条目

在crontest.cron中编写以下:

449c17660b1fc9fcae791724d4dddf59.png

加入定时任务中:crontab /root/shellleaner/crontest.cron

每个系统用户(包括root用户)都可以用自己的cron时间表来运行安排好的任务。Linux提供 了crontab命令来处理cron时间表。要列出已有的cron时间表,可以用-l选项:crontab -l

e1713adae2f3ba1f593520f999c04952.png

如果你创建的脚本对精确的执行时间要求不高,用预配置的cron脚本目录会更方便。有4个 基本目录:hourly、daily、monthly和weekly。

74dc80bccfa7e0241c6aa9a535253482.png

因此,如果脚本需要每天运行一次,只要将脚本复制到daily目录,cron就会每天执行它。

有什么讨论的内容,可以加我公众号:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值