当前位置: 首页 > news >正文

Linux 中的 crontab 命令介绍以及使用

文章目录

  • Linux Crontab 完全指南
  • 什么是 Crontab?
  • Crontab 文件的基本格式
    • 特殊符号解释:
  • 如何使用 Crontab
    • 查看当前用户的 Crontab
    • 编辑 Crontab
    • 删除 Crontab
  • Crontab 示例
    • 每天晚上 12 点备份数据库
    • 每个工作日的早上 9 点发送日报
    • 每隔 15 分钟清理临时文件
    • 每月 1 号凌晨 3 点运行系统维护
    • 每 10 分钟检测服务是否运行
  • Crontab 的日志和调试
    • 日志记录
    • 通过邮件接收输出
  • Crontab 的环境变量
  • Crontab 的特殊时间字符串
  • Crontab 的权限控制
  • 结论


Linux Crontab 完全指南

crontab 是 Linux 系统中用于设置周期性任务调度的工具,可以帮助用户自动执行某些操作或脚本。它支持以分钟、小时、天、月和星期为单位定义任务执行的时间。本文将详细介绍 crontab 命令的基础知识及其用法,并通过实际示例帮助理解如何创建和管理定时任务。

什么是 Crontab?

cron 是 Unix 和 Linux 系统中的一个任务调度守护程序,crontab 是它的配置文件,用来定义定时执行的任务。每个用户,包括系统用户,都可以有一个单独的 crontab 文件来安排自己的任务。

Crontab 文件的基本格式

crontab 文件的每一行代表一个任务,它包含 6 个字段,具体如下:

* * * * * command_to_execute
- - - - -
| | | | |
| | | | ----- 星期几 (0 - 7) (周日可用 07 表示)
| | | ------- 月份 (1 - 12)
| | --------- 一个月中的第几天 (1 - 31)
| ----------- 小时 (0 - 23)
------------- 分钟 (0 - 59)

特殊符号解释:

  • * 表示任意值。例如,* * * * * 表示每分钟执行一次任务。
  • , 用于分隔多个值。例如,0,30 9 * * * 表示在每天 9:00 和 9:30 各执行一次任务。
  • - 表示范围。例如,1-5 表示 1 到 5 之间的所有值。
  • / 表示步进。例如,*/10 表示每 10 分钟执行一次。

如何使用 Crontab

查看当前用户的 Crontab

crontab -l

该命令会列出当前用户的所有定时任务。如果没有任何任务,会显示空白。

编辑 Crontab

要编辑当前用户的 crontab 文件,可以使用以下命令:

crontab -e

这将打开用户的 crontab 文件,用户可以在其中添加、修改或删除任务。

删除 Crontab

如果想删除当前用户的所有定时任务,可以运行:

crontab -r

注意: 这个命令将彻底删除所有的任务,请谨慎使用。

Crontab 示例

每天晚上 12 点备份数据库

假设我们有一个需要备份的数据库,并且希望每天晚上 12 点自动执行备份脚本。可以通过如下设置来实现:

0 0 * * * /path/to/backup.sh

该任务会在每天的午夜 12 点执行一次 backup.sh 脚本。

每个工作日的早上 9 点发送日报

如果你有一个脚本,每天早上 9 点向团队发送工作日报报告,只需要在 crontab 中添加以下行:

0 9 * * 1-5 /path/to/report.sh

这里的 1-5 表示从周一到周五,因此该任务只会在工作日执行。

每隔 15 分钟清理临时文件

为了避免系统临时文件积压过多,可以设置一个任务每 15 分钟自动清理 /tmp 目录下的文件:

*/15 * * * * /path/to/cleanup.sh

这个任务将每 15 分钟执行一次 cleanup.sh 脚本,清理临时文件。

每月 1 号凌晨 3 点运行系统维护

每月的 1 号凌晨 3 点执行系统维护脚本,可以设置如下任务:

0 3 1 * * /path/to/maintenance.sh

每 10 分钟检测服务是否运行

定时检查某个服务是否在运行,如果没有运行则重启,可以通过以下任务实现:

*/10 * * * * /path/to/check_service.sh

这个任务每 10 分钟检查一次服务状态,并根据需要启动它。

Crontab 的日志和调试

有时你会发现 crontab 任务没有按预期执行,可能是因为脚本路径错误、权限问题等。要调试 crontab,可以通过以下方式获取更多信息:

日志记录

大多数 Linux 系统会把 cron 的执行日志保存在 /var/log/cron 文件中。你可以查看这个日志来了解任务是否被执行,以及是否出现了错误。

cat /var/log/cron

通过邮件接收输出

如果 crontab 执行的任务有输出,系统会将这些输出发送到用户的邮箱。要查看这些输出,可以直接读取邮箱中的内容。

也可以在 crontab 文件中指定邮箱地址,例如:

MAILTO="your_email@example.com"

这样,每次任务执行的输出都会被发送到指定邮箱中。

Crontab 的环境变量

有时 crontab 中的任务执行失败,原因可能是缺少环境变量。crontab 执行的任务通常运行在一个最小化的环境中,没有用户的 shell 环境。因此,像 PATHHOME 这样的变量可能需要手动设置。例如:

PATH=/usr/local/bin:/usr/bin:/bin
HOME=/home/username

可以在 crontab 文件的顶部添加这些变量定义。

Crontab 的特殊时间字符串

crontab 还支持一些特殊的时间字符串,用于简化常见的调度任务:

  • @reboot:在系统重启时运行任务
  • @yearly@annually:每年执行一次任务(等价于 0 0 1 1 *
  • @monthly:每月执行一次任务(等价于 0 0 1 * *
  • @weekly:每周执行一次任务(等价于 0 0 * * 0
  • @daily@midnight:每天执行一次任务(等价于 0 0 * * *
  • @hourly:每小时执行一次任务(等价于 0 * * * *

例如,设置一个任务在系统重启后执行:

@reboot /path/to/startup_task.sh

Crontab 的权限控制

/etc/cron.allow/etc/cron.deny 文件中可以控制哪些用户可以使用 cron。如果存在 /etc/cron.allow 文件,只有该文件中列出的用户才可以使用 crontab。如果存在 /etc/cron.deny 文件,列出的用户将不能使用 crontab

结论

crontab 是一个强大的工具,它使得任务调度和自动化管理变得简单。通过熟练掌握 crontab 的使用,可以减少很多手动操作,提高工作效率。在设置 crontab 时,需要小心配置时间和路径,避免出现意外情况。

相关文章:

Linux 中的 crontab 命令介绍以及使用

文章目录 Linux Crontab 完全指南什么是 Crontab?Crontab 文件的基本格式特殊符号解释: 如何使用 Crontab查看当前用户的 Crontab编辑 Crontab删除 Crontab Crontab 示例每天晚上 12 点备份数据库每个工作日的早上 9 点发送日报每隔 15 分钟清理临时文件…...

单片机组成原理

大纲 C语言指针如何与硬件对应 底层疑问的源头 我已造好轮子,等你来理解 外设电路大概是什么结构 解决底层开发中关于配置、寄存器) 外设电路的疑问 从此可以快速上手新的单片机、新的外设芯片 对外设芯片的内部结构有本质理解,看手册不再是问题 固件库…...

《机器学习》—— SVD奇异值分解方法对图像进行压缩

文章目录 一、SVD奇异值分解简单介绍二、代码实现—SVD奇异值分解方法对图像进行压缩 一、SVD奇异值分解简单介绍 SVD(奇异值分解)是一种在信号处理、统计学、线性代数、机器学习等多个领域广泛应用的矩阵分解方法。它将任何 mn 矩阵 A 分解为三个特定矩…...

英文文本预处理——文本清理

文本清理定义 文本清理是英文文本预处理的重要步骤,旨在提高数据质量和一致性。以下是文本清理的具体内容: 去除标点符号 (Removing Punctuation): 删除文本中的标点符号,如句号、逗号、问号等。这一步骤有助于减少文本噪音,使得文本分析更加专注于有意义的词汇内容。 去…...

Spring Boot 注解探秘:常用配置值读取注解的魔力

在 Spring Boot 应用开发中,我们会常常借助Apollo,Spring Cloud Config等配置中心来集中管理配置信息,在拥有配置信息之后,高效且准确地读取这些配置信息无疑是极为关键的一环。今天我们就来介绍几个常用的用于配置值读取的注解。…...

Ps初步使用教程

1.画面快捷键 Ctrl鼠标滚轮:画面左右移动 Shift鼠标滚轮:画面上下快速移动(不加Shift正常速度移动) Alt鼠标滚轮:画面大小缩放 2.工具快捷键 ShiftG:渐变、油漆桶、3D材质施放 切换 CtrlO&#xff1a…...

远程连接Hiveserver2服务

目录 1.修改 core-site.xml 和 hive-site.xml 的配置文件 2.启动HiveServer2服务 3.启动Beeline工具连接Hiveserver2服务 4.利用IDEA工具连接Hiveserver2服务 完成Hive本地模式安装后,可以启动hiveserver2服务进行远程连接和操作Hive。 1.修改 core-site.xml …...

PDF样本图册转换为一个链接,随时打开无需印刷

想象一下,您手中有一本厚重的样本图册,里面包含了丰富多样的内容,如产品介绍、项目方案、学术论文等。在过去,您需要逐一翻阅、筛选,甚至为了便于查看,不得不将其印刷出来。如今,借助先进的数字…...

自己动手实现mybatis的底层框架(不用动态代理直接用执行器、用动态代理自己实现。图文分析!)

目录 一.原生mybits框架图分析 自己实现Mybatis框架的分析 两种框架操作数据库的方法: 二.搭建开发环境 1.先创建一个maven项目 2.加入依赖(mysql dom4j junit lombok) 三.mybatis框架的设计思路 具体实现过程 3.1实现任务阶段 1- 完成读取配置文件&#x…...

项目日志——日志落地模块的设计、实现、测试

文章目录 日志落地模块设计实现扩展实现测试 日志落地模块 设计 功能是,将格式化完成后的日志消息字符串,输出到指定的位置 支持将日志落地到不同的位置 标准输出指定文件滚动文件 滚动文件按照时间或者大小进行滚动切换,可以按照天数对…...

CTK框架(七):事件监听

目录 1.概述 2.监听接口 3.具体实现 1.概述 CTK(Common Toolkit)框架中的事件监听机制是一个重要的功能,它允许开发者在特定事件发生时接收到通知并执行相应的操作。CTK框架主要支持三种类型的事件监听:框架事件、插件事件和服…...

一区霜冰算法+双向深度学习模型+注意力机制!RIME-BiTCN-BiGRU-Attention

一区霜冰算法双向深度学习模型注意力机制!RIME-BiTCN-BiGRU-Attention 目录 一区霜冰算法双向深度学习模型注意力机制!RIME-BiTCN-BiGRU-Attention效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现RIME-BiTCN-BiGRU-Attention霜冰算法…...

C语言 | Leetcode C语言题解之第396题旋转函数

题目&#xff1a; 题解&#xff1a; #define MAX(a, b) ((a) > (b) ? (a) : (b))int maxRotateFunction(int* nums, int numsSize){int f 0, numSum 0;for (int i 0; i < numsSize; i) {f i * nums[i];numSum nums[i];}int res f;for (int i numsSize - 1; i &g…...

利士策分享,克服生活中的困难:走好勇攀高峰的每一步

利士策分享&#xff0c;克服生活中的困难&#xff1a;走好勇攀高峰的每一步 在这个纷繁复杂的世界里&#xff0c;每个人都是自己生命旅程中的行者&#xff0c;而生活&#xff0c;则是一条既铺满鲜花又布满荆棘的道路。 我们或许会在某个清晨醒来&#xff0c;发现自己正站在一座…...

PurchasereturnController

目录 1、 PurchasereturnController 1.1、 反审核退货单 1.1.1、 //配件ID 1.1.2、 //配件编码 1.1.3、 //修改后仓库 1.1.4、 //修改配件信息表库存量 PurchasereturnController using QXQPS.Models; using QXQPS.Vo; using System; using System.Collection…...

mysql 学习笔记 八

总结 自动提交 查看自动提交状态&#xff1a;SELECT AUTOCOMMIT &#xff1b; 设置自动提交状态&#xff1a;SET AUTOCOMMIT 0 。 手动提交 AUTOCOMMIT 0 时&#xff0c;使用 COMMIT 命令提交事务。 事务回滚 AUTOCOMMIT 0 时&#xff0c;使用 ROLLBACK 命令回滚事务。 …...

反序列化漏洞练习2

拿到题目&#xff0c;发现目标是获得flag.php的内容,且sis中admin和passwd等于sis2407时会输出fag的内容 根据源码编写序列化代码 <?php error_reporting(0); class sis{public $admin;public $passwd;public function __construct(){$this->admin "sis2407"…...

基于SpringBoot的社区医院管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于JavaSpringBootVueMySQL的社团管理系统【附源码文档】、…...

YOLOv8安装配置教程(Windows版)

YOLOv8安装配置教程&#xff08;Windows版&#xff09; 简介&#xff1a;最近由于选择了人工智能方向的专业选修课&#xff0c;课程需要安装配置YOLOv8&#xff0c;经过查阅各种资料后才发现&#xff0c;许多教程都比较老旧&#xff0c;并且文件位置也发生了变化&#xff0c;所…...

Linux的历史,版本,Linux的环境安装、简单学习4个基本的Linux指令等的介绍

文章目录 前言一、Linux的历史二、版本三、Linux的环境安装1. 腾讯云服务器的申请2. xshell的安装与使用 四、 简单学习4个基本的Linux指令1. ls2. pwd3. mkdir4. cd 总结 前言 Linux的历史&#xff0c;版本&#xff0c;Linux的环境安装、简单学习4个基本的Linux指令等的介绍 …...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学&#xff08;ECC&#xff09;是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础&#xff0c;例如椭圆曲线数字签…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中&#xff0c;提示一个依赖外部头文件的cpp源文件需要同步&#xff0c;点…...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...

招商蛇口 | 执笔CID,启幕低密生活新境

作为中国城市生长的力量&#xff0c;招商蛇口以“美好生活承载者”为使命&#xff0c;深耕全球111座城市&#xff0c;以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子&#xff0c;招商蛇口始终与城市发展同频共振&#xff0c;以建筑诠释对土地与生活的…...

针对药品仓库的效期管理问题,如何利用WMS系统“破局”

案例&#xff1a; 某医药分销企业&#xff0c;主要经营各类药品的批发与零售。由于药品的特殊性&#xff0c;效期管理至关重要&#xff0c;但该企业一直面临效期问题的困扰。在未使用WMS系统之前&#xff0c;其药品入库、存储、出库等环节的效期管理主要依赖人工记录与检查。库…...

GB/T 43887-2024 核级柔性石墨板材检测

核级柔性石墨板材是指以可膨胀石墨为原料、未经改性和增强、用于核工业的核级柔性石墨板材。 GB/T 43887-2024核级柔性石墨板材检测检测指标&#xff1a; 测试项目 测试标准 外观 GB/T 43887 尺寸偏差 GB/T 43887 化学成分 GB/T 43887 密度偏差 GB/T 43887 拉伸强度…...

项目研究:使用 LangGraph 构建智能客服代理

概述 本教程展示了如何使用 LangGraph 构建一个智能客服代理。LangGraph 是一个强大的工具&#xff0c;可用于构建复杂的语言模型工作流。该代理可以自动分类用户问题、分析情绪&#xff0c;并根据需要生成回应或升级处理。 背景动机 在当今节奏飞快的商业环境中&#xff0c…...

JS面试常见问题——数据类型篇

这几周在进行系统的复习&#xff0c;这一篇来说一下自己复习的JS数据结构的常见面试题中比较重要的一部分 文章目录 一、JavaScript有哪些数据类型二、数据类型检测的方法1. typeof2. instanceof3. constructor4. Object.prototype.toString.call()5. type null会被判断为Obje…...