Linux —— 定时任务(sleep、crontab、at)

目录

1、使用 sleep 来完成定时任务

2、使用 crontab 来进行定时任务

3、使用 at 来执行单次的定时任务


1、使用 sleep 来完成定时任务

        sleep n           等待 n 再继续往后执行 

        usleep n        等待 n 微秒再继续往后执行(1 秒等于 1 000 000 微秒)

# 定时,每分钟的第二十秒,输出一条信息t=0
while [[ 1 -eq 1 ]];        # 无限循环
dod=`date "+%S"`d=`expr $d + 0`        # 如果秒为个位数,则十位上有一个0,通过计算把0去掉if [[ $d -eq 20 ]]; thenecho `date "+%Y-%m-d %H-%M-%S"`((t++))sleep 1            # 间隔一秒后继续,不然程序执行太快,同一秒可能会输出多次fiif [[ $t -gt 3 ]]; then        # 只进行四次breakfi
done 

2、使用 crontab 来进行定时任务

        确保 crond 服务处于启动状态:systemctl start crond。

crontab 最小的单位是分钟,即最快是每隔一分钟执行一次。

crontab -l

查看当前有哪些定时任务

crontab -e

添加定时任务

crontab -r

删除目前的定时任务

        crontab -e 后,进入到编辑器中,每一行编写一个定时任务,格式说明如下。 

来自菜鸟教程

        program 可以是一个命令,也可以是一个 Shell 程序,推荐将定时执行的程序放到一个 Shell 程序中,让定时任务去执行 Shell 程序。 

        每分钟执行一次 /self/timing/outputTime.sh 这个程序(注意这个 Shell 程序要有执行权限。chmod u+x outputTime.sh 为用户添加执行权限):

        定时任务开启后,每隔一分钟,第一句的结果将通过邮件发送到 /var/spool/mail/root 中,第二句的结果将添加到指定的文件末尾(由于输出的文件是相对路径,当前的用户为 root,则crontab 执行后,会输出到 /root/outputTime.txt 中,即用户主目录下的 outputTime.txt 文件中 )。

分  时  月中第几日  第几月  周几# 每两个小时执行一次,最后的 & 表示在后台进行执行,它不会阻塞cron的执行,允许cron继续检查和执行其他任务
0 */2 * * * /self/outputTime.sh &# 每天7:30执行一次
30 7 * * * /self/outputTime.sh# 每月1号和15号的22点执行一次
0 22 1,15 * * /self/outputTime.sh# 每小时的第一分执行一次
1 * * * * /self/outputTime.sh# 每周一至周五3点执行一次
0 3 * * 1-5 /self/outputTime.sh# 每月的1、11、21、31日执行一次
30 6 */10 * * /self/outputTime.sh

crontab 的日志通常记录在系统的 /var/log/cron 或 、/var/log/syslog 中

3、使用 at 来执行单次的定时任务

        首次使用时安装 at :yum install at 

        启动 atd 服务:systemctl start atd

         at 基本格式

at [选项] [要执行的时间]

        时间可以是相对的也可以是绝对的。相对时间的设定是使用 now + 从现在开始要经过的时间。

at now + 3 minutes
at now + 3 hours
at now + 3 days
at now + 3 weeks
at now + 3 months
at now + 3 yearsat 3:00 AM tomorrow
at 3:00 AM 08/01/2023
at 16:00 2023-12-30

        在一分钟之后向指定文件中追加 hello world。at -l 查看待执行的 at 任务。 

        使用管道符将要执行的内容传递给 at。在三天之后执行

        删除还未执行的任务

# 首先获取到其 id
at -l         # 或 atq# 然后根据 id 删除该任务
at -d [id]    # 或 atrm [id]

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uniapp使用Echarts图表H5显示正常 打包app显示异常

uniapp使用Echarts在H5页面调试 调试完在H5正常显示 然后通过安卓机调试的时候 发现直接空白了 还有这个爆错 Initialize failed: invalid dom 我有多个图表、图表是通过v-for循环出来的 解决方案 原来是yarn直接安装Echarts 然后改成本地JS文件引入 gitbub文件地址 — dist/…

二十几岁的我们:在旷野中找寻自我

二十几岁,这是一个充满变数、充满机遇和挑战的年纪。它如同一片辽阔的旷野,每个人都在其中寻找自己的方向,摸索着自己的道路。这是一个既令人兴奋又令人迷茫的年纪,我们穿着不同的鞋子,注定要走不同的路。 在这个年纪里…

MySQL表字段数据类型设计建议

MySQL表字段数据类型设计建议 前言阿里巴巴Mysql字段类型规范一、数值类型二、日期和时间类型三、字符串类型四、IP存储总结 前言 最新的 Java 面试题,技术栈涉及 Java 基础、集合、多线程、Mysql、分布式、Spring全家桶、MyBatis、Dubbo、缓存、消息队列、Linux……

面向对象(下)

目录 01、static1.1、static的使用1.2、static应用举例1.3、单例(Singleton)设计模式 02、main方法的语法03、类的成员之四:代码块04、关键字:final05、抽象类与抽象方法5.1、多态的应用:模板方法设计模式(TemplateMethod) 06、接口(interfac…

redis中setnx命令的底层原理是什么

该命令的含义是set if not exists,Redis是单线程的,所有的命令都是串行执行的。而且Redis的SETNX操作是原子的,即使有大量的线程同时发送SETNX命令,Redis也会一个接一个地执行这些命令。也就是说,即使有多个线程同时使用SETNX尝试…

直接码住!引流四大关键要素一定要知道!

在当今流量盛行的时代,要想做好引流工作,就必须了解并掌握引流的四大关键要素,接下来就一起来看看这四大要素分别是什么吧! 1、渠道 选择合适的引流渠道是引流工作中至关重要的一环。不同的产品或服务适合的渠道可能会有所不同&…

(九)Android布局类型(约束布局ConstraintLayout)

约束布局(ConstraintLayout)与相对布局差不多,是创建一个应用后默认的布局方式,比相对布局更加灵活,一般用于平铺的布局(不适用于层叠布局),常用于托拖拽方式构建页面,最…

第五篇:数字视频广告格式概述 - IAB视频广告标准《数字视频和有线电视广告格式指南》

第五篇:第五篇:数字视频广告格式概述 - IAB视频广告标准《数字视频和有线电视广告格式指南 --- 我为什么要翻译介绍美国人工智能科技公司IAB系列技术标准(2) ​​​​​​​翻译计划 第一篇序言第二篇简介和目录第三篇概述- IA…

由浅到深认识C语言(2):C语言的类型及语句

该文章Github地址:https://github.com/AntonyCheng/c-notes 在此介绍一下作者开源的SpringBoot项目初始化模板(Github仓库地址:https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址:https://blog.csdn…

pr画中画模板视频素材

pr画中画视频模板,视频聊天对话模板。软件支持:Premiere Pro 2021或更高版本。 来自:pr模板网,下载地址:https://prmuban.com/38196.html

【Python多进程】的进阶讲解

Python多进程 1. 介绍2. multiprocessing模块的基本用法3. 使用Pool4. 进程间通信5. 进程同步6. Process子类化7. 注意事项及选择 1. 介绍 Python中的多进程是通过multiprocessing模块来实现的,与多线程相比,多进程可以实现真正的并行计算,因…

代码随想录算法训练营第day26|39. 组合总和、 40.组合总和II、 131.分割回文串

39. 组合总和 力扣题目链接(opens new window) 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取。 说明: 所有数字(包括 ta…

python--常用简单功能

os函数获取上层目录 # 获取当前目录 print(os.path.abspath(os.path.dirname(__file__))) # 获取上级目录 print(os.path.abspath(os.path.dirname(os.path.dirname(__file__)))) print(os.path.abspath(os.path.dirname(os.getcwd()))) print(os.path.abspath(os.path.join(o…

execl数据多维度建模(二)

源数据 1.选择数据 1)插入透视表 选中源数据的数据区域--插入--数据透视表(新的工作表名:透视表) 2)透视表设置 ShipCountry拉入行标签;CategoryName拉入列标签;sales拉入值的位置 3&#xf…

第八节:Vben Admin登录页面自定义

系列文章目录 第一节:Vben Admin介绍和初次运行 第二节:Vben Admin 登录逻辑梳理和对接后端准备 第三节:Vben Admin登录对接后端login接口 第四节:Vben Admin登录对接后端getUserInfo接口 第五节:Vben Admin权限-前端控制方式 第六节:Vben Admin权限-后端控制方式 第七节…

计算机二级Python题目12

目录 1. 基础题 1.1 基础题1 1.2 基础题2 1.3 基础题3 2. turtle画图题 3. 大题 3.1 大题1 3.2 大题2 1. 基础题 1.1 基础题1 sinput("请输入一个小数:") ss[::-1] cs0 for c in s:if c.:breakcseval(c) print({:*>10}.format(cs)) 1.2 基础…

软考论文写作注意事项

本博客地址:https://security.blog.csdn.net/article/details/136816368 一. 论文要求 1、形式方面的要求。首先,内容要丰满,即字数要够,其中摘要字数为 290~320,正文字数为 2200~2800&#x…

kvm利用脚本创建一个新的虚拟机 —— 筑梦之路

1. 脚本文件 #!/usr/bin/env bash # 创建虚拟机 ## 2021/3/28kvm_install(){set -ueset -o pipefail# 创建相关目录ls /home/kvm/{ks,virtualhost,virtual-img} 1>/dev/null 2>&1 || mkdir -p /home/kvm/{virtualhost,virtual-img}# 此程序的变量KVM_HOME/home/kvmK…

winpcap设备名

接口定义&#xff1a; #include <pcap/pcap.h> char errbuf[PCAP_ERRBUF_SIZE]; pcap_t *pcap_open_live(const char *device, int snaplen, int promisc, int to_ms, char *errbuf);其中的device构造如下&#xff1a; 调用GetAdaptersInfo&#xff0c;返回值中的Adapt…

Linux 系统日志

系统日志类型 /var/log/syslog&#xff1a;系统日志&#xff0c;记录所有系统事件。/var/log/messages&#xff1a;系统消息&#xff0c;记录所有系统消息&#xff0c;包括启动信息、错误和警告信息。/var/log/auth.log&#xff1a;认证日志&#xff0c;记录所有认证事件&…