Linux 定时任务:轻松创建与精准执行

Linux 定时任务:轻松创建与精准执行

在 Linux 系统的运维与自动化管理领域,定时任务扮演着举足轻重的角色。它能够让系统在预设的时间点或周期性时段,自动执行特定的脚本、命令,极大地减轻了管理员的工作负担,提升工作效率。接下来,就让我们深入探究 Linux 定时任务的创建与执行细节。

在这里插入图片描述

一、crontab 基础介绍

crontab 是 Linux 下用于管理定时任务的实用工具,普通用户与超级用户(root)都能使用它来定制专属的任务计划。其运行机制基于一个被称为“cron 表”的配置文件,这份文件详细罗列了各个任务执行的时间规则与对应的命令。

二、crontab 语法详解

crontab 的语法格式如下:

* * * * * command

这一行指令被五个星号与一个命令分成了六个部分,从左至右,每个星号各自代表不同的时间维度:

  • 第一个*:表示分钟,取值范围是 0 - 59,意味着任务可以在该小时内的任意一分钟启动。
  • 第二个*:代表小时,范围为 0 - 23,指定任务执行的具体小时。
  • 第三个*:对应日期,取值 1 - 31,确定每月的哪一天执行任务。
  • 第四个*:指月份,1 - 12 之间,界定任务执行的月份。
  • 第五个*:涉及星期几,0 - 6 可选(0 代表星期日),明确任务在一周中的哪一天开展。
  • command:则是实际要执行的脚本、程序或者命令,例如/bin/bash /home/user/script.sh,也就是需要定时运行的具体操作内容。

此外,还能使用特定的数字间隔、列表、范围等形式来精准定义时间:

  • 间隔指定:在时间字段使用*/n 格式,如*/5 * * * *,表示每 5 分钟执行一次任务。
  • 列表形式:列举多个时间值,用逗号隔开,像1,15,30 * * * *,任务会在第 1、15、30 分钟执行。
  • 范围形式:给出取值范围,例如10-20 * * * *,代表任务在第 10 到 20 分钟这个区间内执行。

三、创建定时任务

  1. 普通用户创建:普通用户打开终端,输入crontab -e,系统会默认调用 vi 或 nano 编辑器打开用户专属的 cron 表。在这里,按照语法格式添加一行任务计划,比如每天凌晨 2 点备份用户家目录下的重要文件:
0 2 * * * tar -czf /home/user/backup.tar.gz /home/user/important_files

编辑完成后,保存并退出编辑器,新的定时任务就添加成功了。
2. root 用户创建:root 用户权限更大,不仅能管理自身的定时任务,还能为系统全局设置定时任务。同样使用crontab -e,但此时编辑的是系统级别的 cron 表,所添加的任务影响整个系统。例如,每月 1 号凌晨 3 点重启服务器相关服务:

0 3 1 * * systemctl restart server_services

四、查看定时任务

  1. 查看自身任务:普通用户想要查看自己已经设置的定时任务,只需输入crontab -l,终端就会列出当前用户 cron 表中的所有任务计划。
  2. 查看系统任务:root 用户若要查看系统全部的定时任务,除了能查看自己的crontab -l,还可以查看系统的公共 cron 表文件,位置通常在/etc/crontab,执行cat /etc/crontab即可浏览其中记录的任务安排。

五、编辑与删除定时任务

  1. 编辑任务:要对现有定时任务进行修改,不管是普通用户还是 root 用户,依旧使用crontab -e。系统会再次打开 cron 表,找到要调整的行,更改时间设置或者命令内容,保存退出。
  2. 删除任务:删除定时任务时,普通用户执行crontab -r,这会清空用户自己的整个 cron 表,将所有定时任务一笔勾销;若只想删除某一项特定任务,先crontab -e打开表,删除对应的行即可。root 用户删除系统级任务,同样可以在/etc/crontab文件里找到目标行,手动删除,或者谨慎使用crontab -r清理系统级 cron 表。

六、注意事项

  • 环境变量问题:在定时任务中执行脚本时,由于 cron 运行环境相对“纯净”,可能缺失部分用户环境变量。因此,在脚本开头最好手动设置必要的环境变量,如PATH变量,确保脚本里调用的命令能正常运行。
  • 日志查看:要追踪定时任务是否按预期执行,可以查看/var/log/cron.log日志文件,里面详细记录了 cron 任务的启动、运行状况,一旦出现异常,方便排查原因。

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

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

相关文章

Linux驱动开发:深入理解I2C时序(二)

在Linux驱动开发中,I2C时序的理解和正确处理是保证I2C设备正常工作和通信的关键。I2C协议的时序特性决定了数据的有效传输和设备间的协作。因此,掌握I2C的时序细节,以及如何在Linux内核中进行时序处理,能够让开发者更好地处理设备通信问题。 本文将继续深入探讨I2C通信协议…

国产编辑器EverEdit - 常用资源汇总

1 国产编辑器EverEdit-常用资源汇总 EverEdit是一款国产文本编辑器,历经超过15年的更新和维护,拥有不输业界顶级商业文本编辑器(EmEditor、UltraEdit)的实力,甚至在某些方面的功能更强(当然,各有千秋),开发者对文本编辑…

解决uniapp H5页面限制输入框只能输数字问题

工作记录 最最近在做 uniapp 开发的移动端 H5 页面,有个需求是金额输入框只能输入数字,不能输入小数点和其他字符,经过各种尝试,发现其他字符可以通过正则过滤掉,但是输入小数点的话,因为没有触发 input 和…

面试准备备备备

职业技能 放到简历的黄金位置(HR刷选简历的重要参考) 基本准则:写在简历上的必须能聊,不然就别写 参考公式:职业技能 必要技术 其他技术 针对性的引导面试官(让他问一些你想让他问的) 寻找合…

npm install --global windows-build-tools --save 失败

注意以下点 为啥下载windows-build-tools,是因为node-sass4.14.1 一直下载不成功,提示python2 没有安装,最终要安装这个,但是安装这个又失败,主要有以下几个要注意的 1、node 版本 14.21.3 不能太高 2、管理员运行 …

Jenkins 中自动化部署 Spring Boot 项目

👨🏻‍💻 热爱摄影的程序员 👨🏻‍🎨 喜欢编码的设计师 🧕🏻 擅长设计的剪辑师 🧑🏻‍🏫 一位高冷无情的全栈工程师 欢迎分享 / 收藏 / 赞 / 在看…

【DSP/matlab】fftshift 是什么意思?在信号处理中有什么作用?

文章目录 前言一、定义什么是 fftshift?fftshift 在信号处理中的作用: 前言 dsp_paper 一、定义 fftshift 是一个在信号处理和数字信号处理中常用的函数,特别是在使用快速傅里叶变换(FFT)时。这个函数的主要作用是将…

【PCIe 总线及设备入门学习专栏 4.2 -- PCI 总线的三种传输模式 】

文章目录 OverviewProgrammed I/O(PIO)Direct Memory Access (DMA)Peer-to-Peer 本文转自:https://blog.chinaaet.com/justlxy/p/5100053095 Overview 本文来简单地介绍一下PCI Spec规定的三种数据传输模型:Programmed I/O&…

SpringBoot_第二天

SpringBoot_第二天 学习目标 Mybatis整合&数据访问 使用SpringBoot开发企业项目时,持久层数据访问是前端页面数据展示的基础,SpringBoot支持市面上常见的关系库产品(Oracle,Mysql,SqlServer,DB2等)对应的相关持久层框架,当然除了对于关系…

分类模型评估利器-混淆矩阵

相关文章 地理时空动态模拟工具介绍(上) 地理时空动态模拟工具介绍(下)地理时空动态模拟工具的使用方法 前言 混淆矩阵(Confusion Matrix)是机器学习领域中用于评估分类模型性能的一种工具。它通过矩阵的…

【SpringMVC】拦截器

拦截器(Interceptor)是一种用于动态拦截方法调用的机制。在 Spring MVC 中,拦截器能够动态地拦截控制器方法的执行过程。以下是请求发送与接收的基本流程: 当浏览器发出请求时,请求首先到达 Tomcat 服务器。Tomcat 根…

el-table 实现纵向多级表头

为了实现上图效果,最开始打算用el-row、el-col去实现,但发现把表头和数据分成两大列时,数据太多时会导致所在格高度变高。但由于每一格数据肯定不一样,为保持高度样式一致,就需要我们手动去获取最高格的高度之后再设置…

[paddle] 非线性拟合问题的训练

利用paddlepaddle建立神经网络,模拟有限个数据的非线性拟合 本文仍然考虑 f ( x ) sin ⁡ ( x ) x f(x)\frac{\sin(x)}{x} f(x)xsin(x)​ 函数在区间 [-10,10] 上固定数据的拟合。 import paddle import paddle.nn as nn import numpy as np import matplotlib.…

深入理解Python中的常用数据格式(如csv、json、pickle、npz、h5等):存储机制与性能解析

在数据科学与工程领域,数据的存储与读取是日常工作中不可或缺的一部分。选择合适的数据格式不仅影响数据处理的效率,还关系到存储空间的利用与后续分析的便捷性。本文将以通俗易懂的方式,深入探讨Python中几种常用的数据读写格式(…

算法 class 005 (对数器C语言实现)

对数器的概念: 用来测试你的算法是否正确。 怎么做呢? 1:比如,写个冒泡排序,作为对比的对象 2:生成一个随机数 数组,用来测试 3:用冒泡排序和你想要验证的那个排序算法,同…

基于AT89C51单片机的可暂停八路抢答器设计

点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/90196607?spm1001.2014.3001.5503 C15 部分参考设计如下: 摘要 随着社会进步和科技发展,电子设备在各类活动中的应用日益普遍&#xff0c…

IoC设计模式详解:控制反转的核心思想

前言:在软件开发中,设计模式是一种经过验证的、在特定场景下能有效解决问题的解决方案。控制反转(Inversion of Control,IoC) 作为一种设计模式,通过让程序的控制流和对象管理反转,从而使得代码…

使用C#构建一个论文总结AI Agent

前言 我觉得将日常生活中一些简单重复的任务交给AI Agent,是学习构建AI Agent应用一个很不错的开始。本次分享我以日常生活中一个总结论文的简单任务出发进行说明,希望对大家了解AI Agent有所帮助。任务可以是多种多样的,真的帮助自己提升了…

[Qt] 常用控件 | QWidget | “表白程序2.0”

目录 一、控件概述 控件体系的发展阶段: 二、QWidget 核心属性 核心属性概览: 1、enabled 2、Geometry 实例 1: 控制按钮的位置 实例 2: 表白 程序 i、Window Frame 的影响 ii、API 设计理念 iii、Geometry 和 FrameGeometry 的区别 &#xf…

GAN对抗生成网络(二)——算法及Python实现

1 算法步骤 上一篇提到的GAN的最优化问题是,本文记录如何求解这一问题。 首先为了表示方便,记,这里让最大的可视作常量。 第一步,给定初始的,使用梯度上升找到 ,最大化。关于梯度下降,可以参考笔者另一篇…