【Linux操作系统】深入解析Linux定时任务调度机制-cronat指令
在Linux操作系统中,定时任务调度是一项重要的功能,它可以让用户在指定的时间或周期性地执行特定的任务。这种机制使得用户能够自动化地执行一些重复性工作,提高工作效率。本文将详细介绍Linux定时任务调度的原理、常用指令和代码示例,帮助读者深入理解和应用该功能。
文章目录
- 一、定时任务调度原理
- 1. cron命令
- 2. at命令
- 二、常用指令和代码示例
- 1. crontab指令
- 2. at指令
- 3. 示例代码
- 三、两个定时任务调度命令的区别
- 1. 任务执行方式:
- 2. 任务配置方式:
- 3. 任务类型:
- 结论:
一、定时任务调度原理
Linux系统中的定时任务调度主要依赖于cron和at两个命令。cron是基于时间的任务调度器,它允许用户在指定的时间点或时间间隔内执行任务。at命令则是一次性的任务调度器,允许用户在指定的时间点执行一次任务。
1. cron命令
cron命令是Linux系统中基于时间的任务调度器,它允许用户在指定的时间点或时间间隔内执行任务。cron命令的配置文件是/etc/crontab,每行代表一个定时任务,由五个或六个字段组成,分别表示分钟、小时、日期、月份、星期和要执行的命令。
- 指定时间点执行任务
# 每天的12点30分执行backup.sh脚本
30 12 * * * /path/to/backup.sh
上述例子中,任务将在每天的12点30分执行指定路径下的backup.sh脚本。
- 指定时间间隔执行任务
# 每小时执行一次cleanup.sh脚本
0 * * * * /path/to/cleanup.sh
上述例子中,任务将每小时执行一次指定路径下的cleanup.sh脚本。
- 使用通配符
# 每天的0点到5点,每隔30分钟执行一次job.sh脚本
*/30 0-5 * * * /path/to/job.sh
上述例子中,任务将在每天的0点到5点之间,每隔30分钟执行一次指定路径下的job.sh脚本。
- 使用特殊字符
# 每月的最后一天执行monthly.sh脚本
0 0 28-31 * * [ "$(date +\%d -d tomorrow)" == "01" ] && /path/to/monthly.sh
上述例子中,任务将在每个月的最后一天执行指定路径下的monthly.sh脚本。
除了/etc/crontab,用户还可以使用crontab命令来管理自己的定时任务。例如,使用crontab -e命令编辑当前用户的定时任务,使用crontab -l命令列出当前用户的定时任务。
2. at命令
at命令是Linux系统中的另一种任务调度器,它允许用户在指定的时间点执行一次性任务。用户可以使用at命令将命令或脚本提交到系统中,并指定具体的执行时间。
- 指定时间点执行任务
# 在当前时间的10分钟后执行backup.sh脚本
at now + 10 minutes
at> /path/to/backup.sh
at> Ctrl+D
上述例子中,任务将在当前时间的10分钟后执行指定路径下的backup.sh脚本。在输入at命令后,系统会进入at命令的交互模式,用户需要在at>提示符下输入要执行的命令或脚本,并使用Ctrl+D结束输入。
- 指定具体时间执行任务
# 在指定的日期和时间执行job.sh脚本
at 12:00 PM July 1
at> /path/to/job.sh
at> Ctrl+D
上述例子中,任务将在指定的日期和时间(12:00 PM July 1)执行指定路径下的job.sh脚本。
- 列出已提交的at任务
at -l
上述命令将列出当前用户已提交的at任务,包括任务的编号、执行时间和任务内容。
- 删除已提交的at任务
at -r <任务编号>
上述命令将删除指定编号的at任务。
二、常用指令和代码示例
1. crontab指令
- crontab -e:编辑当前用户的定时任务。
- crontab -l:列出当前用户的定时任务。
- crontab -r:删除当前用户的定时任务。
2. at指令
- at now + 10 minutes:在当前时间的10分钟后执行命令。
- at -l:列出当前用户的at任务。
- at -r:删除当前用户的at任务。
3. 示例代码
以下是一个使用定时任务调度的Python脚本示例,它每天定时执行一次:
import datetimedef backup():# 执行备份操作print("Backup completed at", datetime.datetime.now())if __name__ == "__main__":# 每天的12点30分执行备份函数schedule.every().day.at("12:30").do(backup)while True:schedule.run_pending()time.sleep(1)
上述代码使用了第三方库schedule来实现定时任务调度。在主程序中,我们定义了一个备份函数backup(),然后使用schedule.every().day.at("12:30").do(backup)来指定每天的12点30分执行该函数。最后,通过循环调用schedule.run_pending()来检查是否有定时任务需要执行。
三、两个定时任务调度命令的区别
1. 任务执行方式:
- cron命令:cron是基于时间的任务调度器,可以按照指定的时间点或时间间隔来执行任务。cron任务会在指定的时间周期性地执行,例如每天、每周、每月等。
- at命令:at是一次性的任务调度器,它允许用户在指定的时间点执行一次性任务。at任务只会执行一次,执行完成后就会被自动删除。
2. 任务配置方式:
- cron命令:cron任务的配置可以通过编辑系统的crontab文件(/etc/crontab)或使用crontab命令来完成。用户可以在crontab文件中指定任务的执行时间、执行命令或脚本等。
- at命令:at任务的配置是通过使用at命令将任务提交到系统中,并指定具体的执行时间。用户可以在at命令的交互模式下输入要执行的命令或脚本,并指定执行时间。
3. 任务类型:
- cron命令:cron任务适用于需要重复执行的任务,例如定时备份、定时清理等。用户可以根据需求配置不同的时间点或时间间隔来执行任务。
- at命令:at任务适用于一次性的任务,例如在特定的日期和时间执行某个任务。用户可以指定具体的执行时间,任务执行后会自动删除。
总结起来,cron命令适用于周期性重复执行的任务,而at命令适用于一次性的任务。
结论:
cron命令是基于时间的任务调度器,它允许我们在指定的时间点或时间间隔内执行任务。通过编辑/etc/crontab文件或使用crontab命令,我们可以灵活地配置定时任务。cron命令的用法包括指定时间点执行任务、指定时间间隔执行任务、使用通配符和特殊字符等。
at命令是另一种任务调度器,它允许我们在指定的时间点执行一次性任务。通过at命令,我们可以将命令或脚本提交到系统中,并指定具体的执行时间。at命令的用法包括指定时间点执行任务、指定具体时间执行任务、列出已提交的at任务和删除已提交的at任务。
总结起来,任务调度是一种非常有用的功能,在自动化执行任务方面发挥着重要作用。cron命令适用于需要重复执行的任务,而at命令适用于一次性的任务。通过合理配置任务调度,我们可以提高工作效率,减少手动执行任务的工作量。
相关文章:
【Linux操作系统】深入解析Linux定时任务调度机制-cronat指令
在Linux操作系统中,定时任务调度是一项重要的功能,它可以让用户在指定的时间或周期性地执行特定的任务。这种机制使得用户能够自动化地执行一些重复性工作,提高工作效率。本文将详细介绍Linux定时任务调度的原理、常用指令和代码示例…...
动手学深度学习(一)预备知识
目录 一、数据操作 1. N维数组样例 2. 访问元素 3. 基础函数 (1) 创建一个行向量 (2)通过张量的shape属性来访问张量的形状和元素总数 (3)reshape()函数 (4)创建全0、全1、…...
item_get-KS-获取商品详情
一、接口参数说明: item_get-根据ID取商品详情 ,点击更多API调试,请移步注册API账号点击获取测试key和secret 公共参数 请求地址: https://api-gw.onebound.cn/ks/item_get 名称类型必须描述keyString是调用key(http://o0b.cn/…...
[华为OD] 最小传输时延(dijkstra算法)
明天就要面试了我也太紧张了吧 但是终于找到了一个比较好理解的dijkstra的python解法,让我快点把它背下来!!!! 文章目录 题目dijkstra算法的python实现python解答dfs解法dijkstra解法 题目 先把题目放出来 某通信网络…...
问道管理:总资产大于总市值好吗?
在财政领域,总财物和总市值是两个非常重要的指标。总财物是指公司所有的财物,包括固定财物、流动财物、无形财物等,而总市值则是指公司股票在商场上的总价值。当总财物大于总市值时,这是否是一个好的信号呢?咱们将从多…...
IBM Spectrum LSF (“LSF“ ,简称为负载共享设施) 用户案例
IBM Spectrum LSF (“LSF” ,简称为负载共享设施) 用户案例 IBM Spectrum LSF (“LSF” ,简称为负载共享设施) 软件是业界领先的企业级软件。 LSF 在现有异构 IT 资源之间分配工作,以创建共享,可扩展且容错的基础架构,…...
Pytorch深度学习-----神经网络之非线性激活的使用(ReLu、Sigmoid)
系列文章目录 PyTorch深度学习——Anaconda和PyTorch安装 Pytorch深度学习-----数据模块Dataset类 Pytorch深度学习------TensorBoard的使用 Pytorch深度学习------Torchvision中Transforms的使用(ToTensor,Normalize,Resize ,Co…...
Gis入门,使用起止点和两个控制点生成三阶贝塞尔曲线(共四个控制点,线段转曲线)
前言 本章讲解如何在gis地图中使用起止点和两个控制点(总共四个控制点)生成三阶贝塞尔曲线。 二阶贝塞尔曲线请参考上一章《Gis入门,如何根据起止点和一个控制点计算二阶贝塞尔曲线(共三个控制点)》 贝塞尔曲线(Bezier curve)介绍 贝塞尔曲线(Bezier curve)是一种…...
Web-7-深入理解Cookie与Session:实现用户跟踪和数据存储
深入理解Cookie与Session:实现用户跟踪和数据存储 今日目标 1.掌握客户端会话跟踪技术Cookie 2.掌握服务端会话跟踪技术Sesssion 1.会话跟踪技术介绍 会话:用户打开浏览器,访问web服务器的资源,会话建立,直到有一方断…...
Springboot设置Https
1、修改配置文件application.yml,并将*.jks放到resource目录下。 server:port: 8080ssl:key-store: classpath:*.jkskey-store-password: *key-store-type: JKSenabled: truekey-alias: boe.com.cn2、添加http转https的配置 Configuration public class TomcatCon…...
Windows 使用 Linux 子系统,轻轻松松安装多个linux
Windows Subsystem for Linux WSL 简称WSL,是一个在Windows 10\11上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,其目标是使纯正的Ubuntu、Debian等映像能下载和解压到用户的本地计算机&#…...
中级课程——弱口令(认证崩溃)
文章目录 什么是弱口令密码生成器分类暴力破解万能密码测试环境工具 什么是弱口令 密码生成器 分类 暴力破解 万能密码 or true --测试环境 工具 九头蛇,超级弱口令爆破工具,bp,...
web自动化测试进阶篇05 ——— 界面交互场景测试
😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。 📡主页地址:【Austin_zhai】 🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能,分享行业相关最新信息。…...
NICE-SLAM: Neural Implicit Scalable Encoding for SLAM论文阅读
论文信息 标题:NICE-SLAM: Neural Implicit Scalable Encoding for SLAM 作者:Zihan Zhu, Songyou Peng,Viktor Larsson — Zhejiang University 来源:CVPR 代码:https://pengsongyou.github.io/nice-slam…...
cmake 配置Visual studio的调试命令
配置代码如截图: set_property(TARGET ${TARGET_NAME} PROPERTY VS_DEBUGGER_COMMAND "./consoleTest.exe") set_property(TARGET ${TARGET_NAME} PROPERTY VS_DEBUGGER_COMMAND_ARGUMENTS "./config/labelDriver.cfg") set_propert…...
MPDIoU: A Loss for Efficient and Accurate Bounding BoxRegression--论文学习笔记
超越GIoU/DIoU/CIoU/EIoU MPDIoU让YOLOv7和YOLACT双双涨点 目标检测上的指标对比: 论文地址: [2307.07662] MPDIoU: A Loss for Efficient and Accurate Bounding Box Regression (arxiv.org) 摘要 边界框回归(Bounding Box Regression&am…...
【Uniapp 的APP热更新】
Uniapp 的APP热更新功能依赖于其打包工具 HBuilder,具体步骤如下: 1. 在 HBuilder 中构建并打包出应用程序 具体步骤: 1.点击发行,点击制作wgt包 2.根据需求修改文件储存路径和其他配置,点击确定 3.等待打包完成&a…...
MySQL主从复制配置
Mysql的主从复制至少是需要两个Mysql的服务,当然Mysql的服务是可以分布在不同的服务器上,也可以在一台服务器上启动多个服务。 (1)首先确保主从服务器上的Mysql版本相同 (2)在主服务器上,创建一个充许从数据库来访问的用户slave,密码为:123456 ,然后使用REPLICATION SLAV…...
Linux - 添加普通用户为信任用户
1.添加用户 在Linux系统中,可以使用以下步骤添加用户: 打开终端并以root用户身份登录 输入以下命令以创建新用户(请将username替换为您想要创建的用户名): adduser username 设置该用户的密码,使用以下命…...
flask----路由系统
# 1 flask路由系统是基于装饰器的:参数如下 # 2 转换器: # 3 路由系统本质 # 4 endpoint 不传会怎么样,不传会以视图函数的名字作为值,但是如果加了装饰器,所有视图函数名字都是inner,就会出错,使用wrapp…...
无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...
基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...
MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...
day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...
关于uniapp展示PDF的解决方案
在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项: 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库: npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...
【把数组变成一棵树】有序数组秒变平衡BST,原来可以这么优雅!
【把数组变成一棵树】有序数组秒变平衡BST,原来可以这么优雅! 🌱 前言:一棵树的浪漫,从数组开始说起 程序员的世界里,数组是最常见的基本结构之一,几乎每种语言、每种算法都少不了它。可你有没有想过,一组看似“线性排列”的有序数组,竟然可以**“长”成一棵平衡的二…...
数据结构:泰勒展开式:霍纳法则(Horner‘s Rule)
目录 🔍 若用递归计算每一项,会发生什么? Horners Rule(霍纳法则) 第一步:我们从最原始的泰勒公式出发 第二步:从形式上重新观察展开式 🌟 第三步:引出霍纳法则&…...
