Linux: 任务的定时与延期

概述

  • ls 这种命令是立刻执行的命令,在linux中命令还可以延时执行,它们都涉及到时间的观念

常用命令

  • 先来看下有关系统时间的规格

1 ) date 命令调节时间

  • $ date 显示当前时间
  • 还可以去定制 date 的一个输出, $ man date 可自定义输出
    • $ data "+%H" ,H 是 hour 的首字母,表示 “小时”
    • $ date "+%H:%M:%S" M是分钟,S是秒
      • 也可以自定义分隔其他的字符 $ date "+%H时%M分%S秒"
      • $ data "+现在是%Y年"
  • 这个规则是 + 开头,% 后面的才会被解析

2 )用 date 修改系统时间

  • 需要 root 权限 $ sudo date 10121430 这里没有指定年份, 就拿当前的年份一起做修改
    • 这里会修改成 2024年10月12日14点30分
    • 注意,系统如果开启了自动同步时间,过一会儿时间还会更新成网络同步的

3 ) at 命令:延时执行一个程序

  • 使用 at 命令来设定一个程序的执行时间
  • at 命令只能让程序执行一次
  • 示例
    Wang:~ Wang$ at 22:10
    touch file1.txt
    touch file2.txt
    job 3 at Thu Nov 21 22:10:00 2024
    
    • 这里 让 22:10 的时候做的事情
    • touch file1.txt 和 touch file2.txt
    • 当按下 CTRL + D 的组合键的时候,显示 job 3 at Thu Nov 21 22:10:00 2024
    • 这里 3 是 job 的编号,表示 3 号任务,我之前创建了2个任务,所以这次是 3
  • 同理:
    • 在明天的某一个时刻执行任务:$ at 22:10 tomorrow
    • 在 11月 22日的 22:10执行任务: $ at 22:10 12/10/19
  • 另一种用法:在指定时间间隔之后执行任务
    • 在 10分钟之后执行程序:$ at now +10 minutes
  • at 命令中的一些关键字
    • minutes: 分钟
    • hours: 小时
    • days: 天
    • weeks: 星期
    • months: 月
    • years
    • 用法同上
  • atq 和 atrm 命令 列出和删除正在等待执行的 at 任务
    • 每次使用 at 指定延期的任务,都会分配 job 编号
    • atq 中的 q 是队列
  • 示例
    Wang:~ Wang$ atq
    1	Thu Nov 21 22:10:00 2024
    3	Thu Nov 21 22:10:00 2024
    Wang:~ Wang$ atrm 1 3
    Wang:~ Wang$ atq
    
    • atrm 一次删除了多个任务,再次 atq 发现已经全部删除了

4 )sleep 命令:休息一会

  • 可以用分号隔开多个命令,一个接一个执行
  • 这和管道不一样,管道是前一个命令作为后一个命令的输入
  • 用分号隔开的命令,没有关联,例如:
    • $ touch file.txt
    • $ rm file.txt
    • 这里,创建文件,然后再删除它
  • 在两句命令之间可以插入一定的暂停等待时间
    • $ touch file.txt; sleep 10; rm file.txt
  • sleep 后面的数值单位是 秒,也可以指定为 分钟,小时,天等
    • $ sleep 15m
    • m: 分钟
    • h: 小时
    • d: 天

5 )&& 和 || 符号

  • 在编程语言里,一般称为 “逻辑与” 和 “逻辑或”
  • && 与 || 和 分号一样,用于分隔两个命令,使得命令依次执行
  • 貌似和分号类似,但是有区别
    • &&:&& 号前的命令执行成功,才会执行后面的命令
    • ||: || 号前的命令执行失败,才会执行后面的命令
    • 分号: 不论分号前的命令执行成功与否,都执行分号后的命令

6 )crontab 命令:定时执行程序

  • at 命令只能执行某个(某几个)命令一次
  • crontab 却可以重复执行命令
  • 例如:每小时,每分钟,每天,每星期等等

6.1 centos/redHat 安装 crontab

  • 默认 centos 内置了 crontab 程序
  • 不过有的 Linux 发行版可能没装 crontab
  • 举 yum 系列 和 apt 系列的两个例子来看
  • $ sudo yum install vixie-cron crontabs 安装 Crontab
  • $ chkconfig crond on 设为开机自启动
  • $ service crond start 启动

6.2 Ubuntu/Debian 中安装 Crontab

  • $ sudo apt install cron 安装 crontab
  • $ service cron restartrestart cron 重启 crontab

6.3 前期配置工作

  • 来修改 .bashrc 文件,这是 bash 这个 shell 的配置文件
  • $ echo "export EDITOR=nano" >> ~/.bashrc 变更默认编辑器为 nano
  • $ source ~/.bashrc

6.4 了解 crontab

  • crontab 其实是一个命令,用来读取和修改名为 crontab 的文件

  • crontab 文件包含了你要定时执行的程序列表,也包含了执行的时刻

  • 实际上,有2个命令:一个叫 crontab, 一个叫 cron

  • crontab 用于修改 crontab 文件,cron 用于实际执行定时的程序

  • cron 这个单词来源于希腊语,愿意是时间

  • crontab 三个主要参数

    • -l: 显示 crontab 文件
    • -e: 创建/修改 crontab 文件
    • -r: 删除 crontab 文件
  • 修改 crontab 文件

    • 编辑的格式: m h dom mon dow command
    • 上面这句话给出了 crontab 中的每行指令的书写格式
    • m 是 分钟
    • h 是 小时
    • dom 是 day of month 一个月的那一天
    • mon 是 月份
    • dow 是 day of week 星期几
    • command 需要定时执行的命令
  • 参考下图:

  • 现在希望每天 22点10分都在home目录下创建 file.txt 文件

  • 可以在 crontab 文件里写入

    • 10 22 * * * touch ~/file.txt
    • 10 表示 分钟,22 表示小时,其他3个区域是 *
    • 最后的命令是 touch ~/file.txt
  • 路径最好是绝对路径,因为不确定你 cron 命令执行这些语句的时候在哪个家目录

  • 保存后,如果语法正确,crontab 会显示,$ crontab: installing new crontab

  • 意思是正在安装新的 crontab 文件

  • 常用示例如下

    Crontab意义
    47 * * * * command每个小时的47分都执行command命令,也就是00点47分,01点 47分,02点47分,等等
    0 0 * * 1 command每个礼拜一的凌晨都执行 command 命令
    30 5 1-15 * * command每个月的1~15日的5点30分都执行command命令
    0 0 * * 1, 3, 4 command每个礼拜一,礼拜三,礼拜四的凌晨都执行 command 命令
    0 */2 * * * command每2个小时的整点(0,2,4,6,等等)都执行 command命令
    */10 * * * 1-5 command每个礼拜一到礼拜五的每个10的倍数的分钟(0,10,20,30,等等)都执行 command 命令
  • 列出 contab 文件 $ crontab -l

  • 删除它 $ crontab -r

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/920510.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

RBAC——基于角色的访问控制

目录 一、RBAC核心概念 1. 角色(Role) 2. 用户(User) 3. 权限(Permission) 4. 会话(Session) 二、RBAC模型的演进 1. RBAC0:基本模型 2. RBAC1:角色…

OceanBase V4.x应用实践:如何排查表被锁问题

DBA在日常工作中常常会面临以下两种常见情况: 业务人员会提出问题:“表被锁了,导致业务受阻,请帮忙解决。” 业务人员还会反馈:“某个程序通常几秒内就能执行完毕,但现在却运行了好几分钟,不清楚…

同三维T80003JEHS 4K/60帧HDMI/SDI超高清H.265解码器

1路HDMI和1路SDI输出,1路3.5音频输入和1路3.5音频输出,1个USB2.0口1个USB3.0口,带1个RS232串口,2个网口,支持1路4K60或4路4K30或16路1080P或32路720P解码输出。4种画面分割显示模式。 产品简介: 同三维T80…

【更新中】《硬件架构的艺术》笔记(五):低功耗设计

介绍 能量以热量形式消耗,温度升高芯片失效率也会增加,增加散热片或风扇会增加整体重量和成本,在SoC级别对功耗进行控制就可以减少甚至可能消除掉这些开支,产品也更小更便宜更可靠。本章描述了减少动态功耗和静态功耗的各种技术。…

网络安全审计概述与分类

目录 网络安全审计概述等保五个级别对审计要求网络安全审计系统组成网络安全审计系统类型 网络安全审计概述 4A分别是认证、授权、账号、审计 网络安全审计是指对网络信息系统的安全相关活动信息进行获取、记录、存储分析和利用的工作。 网络安全审计的作用在于建立“事后”…

安宝特方案 | AR助力紧急救援,科技守卫生命每一刻!

在生死时速的紧急救援战场上,每一秒都至关重要!随着科技的发展,增强现实(AR)技术正在逐步渗透到医疗健康领域,改变着传统的医疗服务模式。 安宝特AR远程协助解决方案,凭借其先进的技术支持和创新…

IDEA:2023版远程服务器debug

很简单,但是很多文档没有写清楚,wocao 一、首先新建一个远程jvm 二、配置 三、把上面的参数复制出来 -agentlib:jdwptransportdt_socket,servery,suspendn,address5005 四、然后把这串代码放到服务器中(这里的0.0.0.0意思是所有IP都能访问&a…

Midjourney基础命令和提示词

1 基础命令 1.1 /imagine prompt 生成图片的核心命令,prompt 后输入描述。 /imagine prompt: A majestic dragon flying over a misty mountain, cinematic lighting, 4K resolution 高级提示 1.1.1 基本参数 图片比例 --ar 图片比例 混乱 Aspect Ratios --…

ElasticSearch7.x入门教程之索引概念和基础操作(三)

文章目录 前言一、索引基本概念二、索引基本使用elasticsearch-head插件Kibana使用 总结 前言 要想熟悉使用ES的索引,则必须理解索引相关的概念,尤其是在工作当中。 在此记录,方便开展工作。 一、索引基本概念 尽量以通俗的话语。 1、集群…

【SQL50】day 2

目录 1.每位经理的下属员工数量 2.员工的直属部门 3.判断三角形 4.上级经理已离职的公司员工 5.换座位 6.电影评分 7.修复表中的名字 8.患某种疾病的患者 9.删除重复的电子邮箱 1.每位经理的下属员工数量 # Write your MySQL query statement below #e1是经理,…

基于 RocketMQ 实现 AMQP 协议实践

导语 在Apache CoC 2024 杭州站大会中,腾讯云高级工程师张乐为与会者带来了精彩的演讲。围绕《基于 RocketMQ 底座实现 AMQP 协议》的背景、目标、方案设计以及几个核心技术实现做了详细的阐述。 作者简介 张乐 腾讯高级工程师,负责腾讯云 RabbitMQ S…

python成绩分级 2024年6月python二级真题 青少年编程电子学会编程等级考试python二级真题解析

目录 python成绩分级 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序代码 四、程序说明 五、运行结果 六、考点分析 七、 推荐资料 1、蓝桥杯比赛 2、考级资料 3、其它资料 python成绩分级 2024年6月 python编程等级考试二级编程题 一、题目要求 …

我做了一份斯坦福CS229吴恩达机器学习笔记

吴恩达教授的机器学习课程,可以说是AI领域的一块金字招牌。这门在斯坦福大学开设的课程,历经十余年,依旧是机器学习入门的经典之作。 记得当年,这门课火爆到吴恩达教授不得不将其搬到线上,结果不仅在斯坦福&#xff0c…

ABAP开发学习——SNRO

SAP凭证号码的指定分为外部给号和内部给号。 Internal number range即内部给号,指系统根据预先维护好的号码范围(只能是阿拉伯数字)依序给号,给出已有数字的下一个编号。 External number range即外部给号,后台配置时指指定一个号码范围(可以…

SpringBoot3整合Hutool-captcha实现图形验证码

文章目录 验证码需求分析:项目创建import方式的使用说明exclude方式定义接口:接口定义定义 CaptchaController前端代码在整合技术框架的时候,想找一个图形验证码相关的框架,看到很多验证码不在更新了或者是在中央仓库下载不下来,还需要多引入依赖。后面看到了Hutool **图形…

mysql-connector-java的jar包的下载方法汇总

方法一: 网址:http://mvnrepository.com/artifact/mysql/mysql-connector-java 1.进去后选择自己的版本: 2.然后再点击 3. 需要下载其他的jar包(或者依赖)都是在此网址中可以下载到的 3.1 3.2 3.3 3.4 方法二&#…

Spring Cloud Stream实现数据流处理

1.什么是Spring Cloud Stream? 我看很多回答都是“为了屏蔽消息队列的差异,使我们在使用消息队列的时候能够用统一的一套API,无需关心具体的消息队列实现”。 这样理解是有些不全面的,Spring Cloud Stream的核心是Stream&#xf…

i春秋-签到题

练习平台地址 竞赛中心 题目描述 题目内容 点击GUESS后会有辨识细菌的选择题 全部完成后会有弹窗提示 输入nickname后提示获得flag F12检查 元素中没有发现信息 检查后发现flag在控制台中 flag flag{663a5c95-3050-4c3a-bb6e-bc4f2fb6c32e} 注意事项 flag不一定要在元素中找&a…

无人机 PX4飞控 | CUAV 7-Nano 飞行控制器介绍与使用

无人机 PX4飞控 | CUAV 7-Nano 飞行控制器介绍与使用 7-Nano简介硬件参数接口定义模块连接供电部分遥控器电机 固件安装 7-Nano简介 7-Nano是一款针对小型化无人系统设备研发的微型自动驾驶仪。它由雷迅创新自主研发和生产,其创新性的采用叠层设计,在极…

怎么编译OpenWrt镜像?-基于Widora开发板

1.准备相应的环境,我使用的环境是VMware16ubuntu20.04,如图1所示安装编译所需的依赖包; sudo apt-get install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3 python2.7 unzip zlib1g-…