Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Linux定时运行作业

Linux定时运行作业

作者头像
Tyan
发布于 2019-05-25 15:38:38
发布于 2019-05-25 15:38:38
3.3K00
代码可运行
举报
文章被收录于专栏:SnailTyanSnailTyan
运行总次数:0
代码可运行

版权声明:博客文章都是作者辛苦整理的,转载请注明出处,谢谢! https://cloud.tencent.com/developer/article/1434135

文章作者:Tyan

博客:noahsnail.com | CSDN | 简书

1. Linux运行定时作业的方法

当使用shell脚本时,你可能想在某个特定的时间运行shell脚本,Linux系统中提供了多个在特定时间运行shell脚本的方法:at命令和cron表。

2. at命令

at命令允许指定Linux系统何时运行脚本,at命令会将作业提交到队列中,指定shell何时运行该作业。at的守护进程atd会以后台模式运行,检查作业队列来运行作业。atd守护进程会检查系统上的一个特殊目录来获取at命令的提交的作业。默认情况下,atd守护进程每60秒检查一次目录。有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。

at命令格式:at [-f filename] time-f参数用来指定shell脚本名,time用来指定运行时间。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 立即运行test13.sh脚本
# at命令会显示分配给作业的id和运行时间
$ at -f test13.sh now
job 1 at Sat Dec 17 23:26:09 2016

# atq命令可以查看系统中的等待作业
$ atq
1   Sat Dec 17 23:26:00 2016
2   Sat Dec 17 23:31:00 2016
3   Sat Dec 17 23:32:00 2016

# atrm命令可以删除系统中的等待作业,后面加上要删除的作业id
$ atrm 1
$ atq
2   Sat Dec 17 23:31:00 2016
3   Sat Dec 17 23:32:00 2016
4   Sat Dec 17 23:36:00 2016
5   Sat Dec 17 23:37:00 2016

3. cron时间表

在Linux中,如果要在预设时间执行shell脚本,at命令非常好用,但如果需要定期执行shell任务,例如每天一次、每周一次,则需要Linux的cron程序来安排定期执行的作业。cron程序会在后台运行并检查一个表(cron时间表),以获得要安排执行的作业。

cron时间表采用一种特别的格式来指定作业合适运行,其格式如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
min hour dayofmonth month dayofweek command

cron时间表允许你用特定值、取值范围或通配符来指定条目。例如,如果要在每天10:15运行一个命令,可以用cron时间表条目:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
15 10 * * * command

dayofmonth,month,dayofweek用了通配符,说明cron会在每个月每天的10:15执行该命令。每周一下午4:15执行,其表示形式为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
15 16 * * 1 command

dayofweek也可以用mon、tue、wed、thu、fri、sat、sun表示,数字表示从0~6对应周日~周六。每月第一天中午12点执行的表示形式为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
00 12 1 * * command

crontab -l命令可以列出已有的cron时间表。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ crontab -l
crontab: no crontab for ***

cron时间表是假设Linux系统是7*24小时运行的,如果到了时间系统关机,则作业不会被执行,开机后,cron程序不会执行错过的作业。

参考文献

  1. Linux命令行与shell脚本编程
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016年12月18日,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Linux中的计划任务—Crontab调度一次性执行的任务at/batch
前不久我们梳理了Linux中的计划任务—Crontab调度重复执行的任务,但是有些场景我们只是需要执行一次,执行完就结束任务该怎么办呢? 这里我们要用到linux提供的at/batch命令。
小小工匠
2021/08/16
3K0
linux基础命令介绍十四:定时任务
在计算机的使用过程中,经常会有一些计划中的任务需要在将来的某个时间执行,linux中提供了一些方法来设定定时任务。
用户5030870
2019/04/11
1.3K0
Linux从入门到精通(十一)——计划任务
​ 在很多时候为了自动化管理系统,我们都会用到计划任务,比如关机,管理,备份之类的操作,我们都可以使用计划任务来完成,这样可以是管理员的工作量大大降低,而且可靠度更好。 Linux 系统支持一些能够自动执行任务的服务,我们称为计划任务。
传说之下的花儿
2023/04/16
8740
LinuxShell定时功能
其中,time参数指定了Linux系统何时运行该作业。at命令可识别的time格式有很多种,譬如:
hotarugali
2022/02/28
5940
Linux之at定时任务基本使用
案例 3:明天 17 点钟,输出时间到指定文件内 比如 /root/date100.log
兮动人
2021/06/11
1K0
Linux之at定时任务基本使用
Linux之任务计划
用过windows的同学应该都知道在控制面板中有一个“任务计划”选项,我们可以通过向导设置让计算机在某个时间点或者开机时运行某个脚本或者批处理等等,方便我们的日常管理监视工作;同样在Linux系统中,如果我们想在开机时就运行某个操作,可以直接将命令写入/etc/rc.local中,该操作就会在机器开机时运行;如果把自己写的Bash Shell脚本的名称写在/etc/rc.local中,开机后也会执行其操作;也就是说,在Linux启动的最后阶段,系统会执行存于rc.local中的命令;类似于windows里
小小科
2018/05/02
2.5K0
Linux之任务计划
linux下crontab与anacrontab的使用
每个人或多或少都有一些约会或者是工作,有的工作是例行性的,例如每年一次的加薪、每个月一次的工作报告、每周一次的午餐会报、每天需要的打卡等等; 有的工作则是临时发生的,例如刚好总公司有高官来访,需要你准备演讲器材等等! 用在生活上面,例如每年的爱人的生日、每天的起床时间等等、还有突发性的 3C 用品大降价等等。
小柒吃地瓜
2020/04/23
2.2K0
Linux中定义任务的使用详解
在Linux系统中,定义和管理定时任务是一项常见且重要的操作。通过自动化执行各种任务,如系统维护、数据备份和日志审计,可以大大提高系统的可靠性和效率。本文将详细介绍Linux中定义任务的几种常用方法,并提供相应的代码示例。
炒香菇的书呆子
2024/10/11
1970
Linux进程管理
每个用户均可同时运行多个程序。为了区分每一个运行的程序,Linux给每个进程都做了标识,称为进程号(process ID),每个进程的进程号是唯一的。
Java3y
2018/07/30
6.9K0
Linux进程管理
Linux的cron程序
版权声明:博客文章都是作者辛苦整理的,转载请注明出处,谢谢! https://blog.csdn.net/Quincuntial/article/details/53731040
Tyan
2019/05/25
1.3K0
Linux之at命令
原文链接:https://rumenz.com/rumenbiji/linux-at.html
入门笔记
2021/08/05
1.2K0
Linux系统定时任务(crond)
时间格式:分时日月周—— * * * * * user-name command
民工哥
2020/09/16
5.6K0
Linux 定时任务调度
(1 ) vim /home/my.sh写入内容 date >> /home/mycal和cal >>/home/mycal
用户9615083
2022/12/25
7.2K0
Linux 定时任务调度
linux定时运行命令脚本——crontab
Linux中,周期执行的任务一般由cron这个守护进程来处理  ps -ef | grep cron 
阳光岛主
2019/02/19
4.1K0
at----定时任务命令
at命令是linux另一个常用的定时任务命令。和crontab不同,crontab是循环执行,每过指定时间段就会执行一次,像闹钟。at命令是到指定的时间点执行一次,只执行一次,像记事本,事做完了就没用了。
cultureSun
2023/05/18
6370
Linux 定时服务 crontab
crontab 是Linux上的定时任务,一般我会拿它来备份数据,这次是用它来定时更新 Lets encrypt 的证书。
上山打老虎了
2022/06/14
1.7K0
【Linux入门】计划任务配置
at 命令的作用是在一个指定的时间执行1个指定任务,只执行1次,且需开启 atd 进程。
参谋带个长
2023/12/07
5731
Linux 命令(184)—— at 命令(builtin)
at 的守护进程 atd 会以后台模式运行,检查系统上的一个特殊目录来获取 at 命令的提交的作业。默认情况下,atd 守护进程每 60 秒检查一次目录。有作业时会检查作业运行时间,如果与当前时间匹配,则运行此作业。
恋喵大鲤鱼
2022/10/30
7070
《Linux命令行与shell脚本编程大全》第十六章 控制脚本
一些控制脚本的方式:向脚本发送信号、修改脚本优先级,在脚本运行时切换到运行模式  16.1 处理信号 linux利用信号与运行在系统中的进程进行通信。 也可以通过对脚本进行编程,使其在收到特定信号时执行某些命令。从而控制脚本的操作。 16.1.1 重温Linux信号 比如下面这些常见的: 信号   值         描述 1    SIGUP     挂起进程  2    SIGINT     终止进程  3    SIGOUT    停止进程  9    SIGKILL    无条件终止进程 15   
xcywt
2018/01/11
3.1K0
《Linux命令行与shell脚本编程大全》第十六章 控制脚本
用 Linux 的 at 命令来安排一个任务 | Linux 中国
at 命令是在 Linux 终端让你在特定时间和日期安排一次性工作的方法。它是一种自发的自动化,在终端上很容易实现。
用户8639654
2021/09/03
8970
相关推荐
Linux中的计划任务—Crontab调度一次性执行的任务at/batch
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文