首页 > 系统相关 >Linux-->定时任务调度

Linux-->定时任务调度

时间:2022-09-07 20:00:26浏览次数:143  
标签:任务调度 -- 指定 队列 任务 时间 Linux 执行

crond 任务调度

概述

指定系统在某个时间执行特点的命令或程序。

任务调度分类:

  1. 系统工作:有些重要的工作需要周而复始的重复执行,如病毒扫描等。
  2. 个别用户工作:个别用户可能希望执行某些程序,如mysql数据库的备份。

语法

crontab 选项

常用选项

选项 说明
-e 编辑crontab定时任务
-l 查询crontab任务
-r 删除当前用户的所有crontab任务

用法举例

*/1**** ls -l /etc/ > tmp/to.txt  		->将etc目录的列表信息传入to.txt中

将其写入到crond任务调度中即可每一分钟执行依次

5个占位符号的说明

分--时--天--月--周

用法举例

项目 含义 范围
第一个* 一小时中第几分钟 0-59
第二个* 一天中第几小时 0-23
第三个* 一月中第天 1-31
第四个* 一年中第几个月 1-12
第五个* 一周中的星期几 0-7(0和7都代表星期天)

特殊符号的说明

特殊符号 含义
* 代表任何时间,比如第一个*就代表一小时中每分钟都执行依次的意思
, 代表不连续的时间,比如"0 8,12,16 * * *",就代表在每天的8点0分,12点0分,16点0分都执行依次
- 代表连续的时间范围,比如"0 5 * * 1-6"就代表周一到周六的5点执行
*/n 代表每个多久执行依次,比如"*/10 * * * *"代表每隔10分钟执行

特殊时间执行任务案例

时间 含义
45 22 * * * 每天的22点45分执行命令
0 17 * * 1 每周一17点0分执行命令
0 5 1,15 * * 每月1到15号的5点0分执行命令
40 4 * * 1-5 每周1到中午的4点40分执行命令
*/10 4 * * * 每天4点每隔10分钟执行一次命令
0 0 1,15 * 1 每个月的1号到15号,每周1的0点0分执行命令

星期几和几号最好不要同时出现!容易混乱。

脚本一般是 xxx.sh 文件

一般的我们把要执行的指令写到 xxx.sh 脚本文件中,在crontab中定时执行即可

注意记得给执行权限!

重启任务调度

service crond restart

at定时任务

基本介绍

  1. at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行。
  2. 默认情况下,atd守护进程每60s检查作业队列,有作业时会检查作业运行时间,如果时间与当前时间匹配就运行。
  3. at命令是一次性定时计划任务,执行完一次任务后不再执行
  4. 在使用at命令的时候,务必保障atd进程的启动!

atd会60s一次对一个任务队列进行检测,如果条件符合就出队执行,否则就检测下一个

检测当前运行的进程

ps -ef

检查atd进程是否启动

ps -ef | grep atd

at命令语法

at 选项 时间

ctrl + D 结束at命令的输入

常用选项

选项 含义
-m 当指定的任务被完成后,将给用户发送邮件,即使没有标准输出
-M 不发送邮件
-I atq的别名
-d atrm的别名
-v 显示任务将被执行的时间
-c 打印任务的内容到标准输出
-V 显示版本信息
-q<队列> 使用指定队列
-f<文件> 从指定文件读入任务而不是从标准输入中读入
-t<时间参数> 以时间参数的形式提交要运行的任务

at时间定义

  1. 接受在当天的 hh:mm (小时:分钟) 式的时间指定。假如改时间过去了就放到第二天执行。比如04:00

  2. 使用 midnight (深夜),noon (中午),teatime (下午茶时间,一般为下午4点)等比较模糊的词来指定时间

  3. 采用12小时计时制,即在时间后面加上am(上午),或pm(下午),比如 12:pm

  4. 指定命令执行的具体时间,指定格式为 month day (月 日) 或者 mm/dd/yy(月/日/年)或者dd.mm.yy(日.月.年)

    日期必须跟在时间后面,如 04:00 2021-03-1

  5. 使用相对计时法,指定格式为 now+count time-untis

    • now就是当前时间,time-untis是时间单位,这里可以为
    • minutes(分钟)
    • hours(小时)
    • days(天)
    • weeks(星期)
    • count(是时间数量)如几天,几小时等 如 now+ 5 minutes,五分钟后。
  6. 直接使用 today(今天),tomorrow(明天)来指定完成命令时间。

查看系统中未执行的任务

atq

删除已经设置的任务

atrm 任务编号

对于at -q命令

-q选项后面跟上队列名称将使用指定的队列执行at任务

at -q队列等级 时间
  • 队列名称只包含一个字母,有效的队列名称取值范围是:小写字母a-z或大写字母A-Z

  • 在默认情况下a队列作为at命令的默认队列,b队列作为batch命令的默认队列

  • 越大的字母在执行时拥有越高的优先级

  • 如果在创建at计划任务是使用大写字母指定任务的队列,该任务在执行的时候将被当做batch计划任务处理

batch:在系统负荷允许的情况下执行at任务,换言之,就是在系统空闲的情况下才执行at任务**

对于at -f命令

-f选项后面加上文件路径即可

at -f文件路径 时间

标签:任务调度,--,指定,队列,任务,时间,Linux,执行
From: https://www.cnblogs.com/wdadwa/p/Linux_Learning_06.html

相关文章

  • Enterprise Architect安装
    EnterpriseArchitect安装下载安装包链接:https://pan.baidu.com/s/1cdr2r9Of2YU1l0wW9MW4IA提取码:5xte双击安装包按步骤操作选择安装目录变成学习版把Crack中......
  • 方法自学
    packageStudentSystem;//方法调用学习publicclassStudentSystem{ publicstaticvoidmain(String[]args){inta;intb;intsum=playgam......
  • Java注释
    Java注释单行注释两个/后面跟要注释的内容即可,如://我是单行注释多行注释用/**/来包裹住要注释的内容即可,如:/*我是多行注释啊啊啊啊啊啊啊啊啊啊啊啊啊*/文档注......
  • Java数据类型
    Java数据类型介绍java是一门强类型语言,要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用。分类基本数据类型整数类型:byte范围在-128~127之间short范围......
  • Day 3
    今天做一两道题然后学java或者俄罗斯方块第二遍萌新密码#4  既然这么提示了,首先依据末尾的两个=这应该是base64,先解码  base编码常用有  85、91、92分......
  • 标识符和关键词
    标识符和关键词介绍在Java中,所有的组成部分都需要名字,类名,方法名,变量名等都叫做标识符,关键词就是编程语言事先设定好的,具有一定特殊意义的单词,如publicclassvoid等。......
  • 序章
    本人今年20出头,来自某不知名大专软件技术专业.现在正在进行java企业级技术的闭关修行,本博客所用资料均来自网上(非原创),经过一段时间的学习,总觉得好记性不如烂笔头,深感写......
  • 掌控关系
    几个新知●谈关系就是腹黑、耍心机。关系是个中性词,有人的地方就有关系。●敌我友分析模型分析思路,分析模型才更重要,所以《好好说话》中的五维分析模型,是应该认真学习......
  • 初入Sql Server 之 存储过程的简单使用
    一、简介简单记录一下存储过程的使用。存储过程是预编译SQL语句集合,也可以包含一些逻辑语句,而且当第一次调用存储过程时,被调用的存储过程会放在缓存中,当再次执行时,则不需......
  • 给定一个字符串列表List<String> strList, 统计里面每一个字符串的出现次数。 如: {"
    给定一个字符串列表List<String>strList,统计里面每一个字符串的出现次数。如:{"aa","aa","b"}输出:{"aa",2},{"b",1}补充完整下面的方法:publicMap<Stri......