shell学习之定时运行做业

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

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

at命令容许指定Linux系统什么时候运行脚本。at命令会将做业提交到队列中,指定shell什么时候运 行该做业。at的守护进程会之后台模式运行,检查做业队列来运行做业。blog

at命令的基本格式很是简单:at [-f filename] time队列

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

time参数指定了Linux系统什么时候运行该做业。若是你指定的时间已经错过,at命令会在次日的那个时间运行指定的做业。crontab

在如何指定时间这个问题上,你能够很是灵活。at命令能识别多种不一样的时间格式。test

  • 标准的小时和分钟格式,好比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天

输出:后台

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

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

  只要指定想要删除的做业号就好了。只能删除你提交的做业,不能删除其余人的。

二. cron时间表

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

cron时间表采用一种特别的格式来指定做业什么时候运行。

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

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

在crontest.cron中编写如下:

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

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

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

所以,若是脚本须要天天运行一次,只要将脚本复制到daily目录,cron就会天天执行它。

有什么讨论的内容,能够加我公众号:

相关文章
相关标签/搜索