Ubuntu下使用Cron定时任务

news/2024/9/17 5:09:53/ 标签: ubuntu, linux, 运维

Ubuntu下使用Cron定时任务

文章目录

  • Ubuntu下使用Cron定时任务
    • 概述
    • Cron 工作原理
    • crontab的基本指令使用
    • Cron 定时任务语法
    • 用户的crontab 文件
    • 系统的crontab 文件
    • cron 任务设置环境变量
      • 1. 直接在 crontab 中声明变量
      • 2. 将变量声明为命令的一部分
      • 3. 从文件加载变量
    • 使用环境变量控制 cron 行为
      • 1.路径
      • 2. MAILTO 和 MAILFROM
      • 3. 外壳
      • 4. CRON_TZ
      • 5. 随机延迟
    • 每 30 秒运行一次 cron 任务

概述

Cron Job是一个Linux 程序,它允许用户安排某个软件的执行,通常以 shell 脚本或已编译的可执行文件的形式出现。Cron 通常用于需要按固定时间表运行任务和/或自动执行重复任务(如下载文件或发送电子邮件)的情况。

从最基本的层面上讲,cron 作业是写入名为cron 表(简称为crontab )的表中的一个条目。此条目包含一个计划和一个要执行的命令。cron 守护程序 ( crond ) 会查找 crontab 中的条目,以确定应运行哪些作业以及应根据指定的计划在何时运行这些作业。

Cron 工作原理

大多数标准的 cron 安装包含两个命令:

  • croncrond,这是运行调度实用程序的守护进程
  • crontab,这是允许您编辑作业的 cron 条目的命令

从 Linux 的角度来看,守护进程是指在后台运行且非交互的程序。这意味着该程序不接受任何用户输入,也不向用户显示输出。守护进程一词过去常用于 Unix/Linux 环境,并不是不同操作系统的通用术语。

守护进程将在root用户下运行。您可以运行以下命令来查看 cron 是否正在运行:

ps aux | grep cron

你应该看到如下输出:

root      1111  0.0  0.0  29008  3012 ?        Ss   Aug26   0:01 /usr/sbin/cron -f

如果您根本没有收到命令的任何输出,则 cron 没有运行或未安装。

在 Ubuntu 上,您可以通过运行以下命令快速安装 cron:

sudo apt update && sudo apt install cron

crontab的基本指令使用

查询

#查看当前用户下的定时任务列表
crontab -l

在这里插入图片描述

编辑

#编辑当前用户下的定时任务
crontab -e

在第一次编辑时会有选择编辑器的选项,我们通过选择对应的选项来确定自己所要的编辑器,第二次将不会再次弹出下面图片选择界面,如果想要切换别的编辑器需要通过指令select-editor进行修改。

请添加图片描述
请添加图片描述

看下第一行:

MAILTO这个是直接用户的邮件地址

如果任务产生输出的话,cron 会将执行的任务的输出信息发送到指定的用户邮件。这可以通过在 crontab 文件中设置 MAILTO 变量来配置,也可以在命令行中使用

MAILTO=user@example.com

第二 行为 Cron 定时任务的配置接下来会讲

我们再次使用用查看当前用户下的定时任务列表指令

在这里插入图片描述

删除

#删除当前用户下的定时任务
crontab -r

在这里插入图片描述

Cron 定时任务语法

基本的 crontab 条目看起来像这样,首先是 cron 作业计划,然后是运行的命令:

任务配置的基本格式
*   *   *  * 

http://www.ppmy.cn/news/1523385.html

相关文章

EasyExcel 文件导出:表头与内容样式简单设置

文章目录 EasyExcel 文件导出 - 最终效果使用的 EasyExcel的版本设置表头样式和内容样式设置自动列宽 EasyExcel 文件导出 - 最终效果 具体的效果可通过修改代码来自行调整。经过调整后的样式与默认样式相比,美观程度大幅提升。 下面是默认的样式。丑的一批。 使用…

【2024高教社杯全国大学生数学建模竞赛】ABCDEF题 问题分析、模型建立、参考文献及实现代码

【2024高教社杯全国大学生数学建模竞赛】ABCDEF题 问题分析、模型建立、参考文献及实现代码 1 比赛时间 北京时间:2024年9月5日 18:00-2024年9月8日20:00 2 思路内容 2.1 往届比赛资料 【2022高教社杯数学建模】C题:古代玻璃制品的成分分析与鉴别方案…

【代码随想录训练营第42期 Day55打卡 - 图论Part5 - 并查集的应用

目录 一、并查集 适用范围 三大基本操作 二、经典题目 题目:卡码网 107. 寻找存在的路径 题目链接 题解:并查集 三、小结 一、并查集 适用范围 动态连通性问题:并查集可以判断两个节点是否在同一个连通分量中,这在处理网络…

什么是Flask-WTF

Flask-WTF是Flask框架的一个扩展库,它基于WTForms(一个Python Web表单库)进行简化集成,旨在为Flask Web应用提供强大而灵活的表单处理功能。以下是对Flask-WTF的详细阐述,包括其定义、功能以及应用场景。 一、Flask-W…

Linux内核的调试(TODO)

(TODO) 参考: 万字长文,汇总 Linux 内核调试的方法

JAVA数据导出为Excel

目录 一、导入依赖 二、使用的相关类 1、XSSFWorkbook 构造方法 创建表 操作表 保存表 样式和格式 日期处理 密码保护 其他 2、XSSFSheet 获取属性和信息 行操作 列操作 表的属性 合并单元格 保护表 页眉和页脚 注释 其它 3、XSSFRow 获取属性和信息 单…

【RKNN系列】常用函数:void bind_to_cpu(int cpu_id)

bind_to_cpu 函数 功能 将当前线程绑定到指定的 CPU 核心上。 语法 void bind_to_cpu(int cpu_id) {cpu_set_t cpu_set;CPU_ZERO(&cpu_set);CPU_SET(cpu_id, &cpu_set);pthread_t current_thread pthread_self();if (pthread_setaffinity_np(current_thread, size…

【C++11 ——— 右值引用和移动语义】

C11 ——— 右值引用和移动语义 右值引用和移动语义左值引用和右值引用左值引用与右值引用比较右值引用使用场景和意义左值引用的使用场景:左值引用的短板:左值引用中编译器的优化右值引用和移动语义右值引用引用左值右值引用的其他使用场景 完美转发万能…

易灵思FPGA开发(一)——软件安装

一、资料下载 VF-T20F256-深圳市奥唯思科技有限公司_FPGA图像开发_MIPI (szovs.com) 二、软件安装 安装USB下载器驱动 双击第一个.msi文件进行安装 奥唯思FPGA网盘汇总 (szovs.com) 下载Gtkwave软件

Signac R|如何合并多个 Seurat 对象 (2)

引言 在本文中演示了如何合并包含单细胞染色质数据的多个 Seurat 对象。为了进行演示,将使用 10x Genomics 提供的四个 scATAC-seq PBMC 数据集: 500-cell PBMC 1k-cell PBMC 5k-cell PBMC 10k-cell PBMC 构建数据对象 接下来,将利用已经量化…

线程池实现服务端

线程池实现服务端 线程池的实现 文章目录 线程池实现服务端实现思路通信任务函数处理客户端请求任务函数创建线程池完整实现线程池的实现 实现思路 将服务端的任务抽象为两个任务,即接收客户端请求,和客户端通信;这两个任务就作为线程池中…

二、Android Studio集成ffmpeg so

目录 1、概述 2、新建AS工程 3、拷贝so库到AS 4、编辑CMakeLists.txt 5、编辑Native-lib.cpp 6、修改MainActivity.java 7、效果展示 1、概述 2、新建AS工程 3、拷贝so库到AS 4、编辑CMakeLists.txt 5、编辑Native-lib.cpp 6、修改MainActivity.java 7、效果展示

【机器学习】生成对抗网络(Generative Adversarial Networks, GANs)详解

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 生成对抗网络(Generative Adversarial Networks, GANs)详解GANs的基本原理GANs的…

Java与Kotlin泛型探秘:擦除、不变、协变与逆变

Java与Kotlin泛型探秘:擦除、不变、协变与逆变 目录 Java与Kotlin泛型探秘:擦除、不变、协变与逆变 一、泛型擦除 1. Java泛型擦除 2. Kotlin泛型擦除 二、泛型不变性 1. Java泛型不变性 2. Kotlin泛型不变性 三、泛型协变与逆变 1. Java泛型协…

Leangoo敏捷工具在缺陷跟踪(BUG)管理中的高效应用

在开发过程中,缺陷(BUG)管理一直是项目管理中的一个关键环节。及时发现并修复BUG,不仅能够提高产品质量,还能有效提升团队的工作效率和用户满意度。 在敏捷开发中,快速迭代和频繁交付的特点使得缺陷管理的…

利用分布式锁在ASP.NET Core中实现防抖

前言 在 Web 应用开发过程中,防抖(Debounce) 是确保同一操作在短时间内不会被重复触发的一种有效手段。常见的场景包括防止用户在短时间内重复提交表单,或者避免多次点击按钮导致后台服务执行多次相同的操作。无论在单机环境中&a…

OpenCV第七章——滤波器

1.均值滤波器 均值滤波(Mean Filtering)是一种常用的图像处理技术,主要用于去除图像中的噪声,平滑图像。它通过对图像进行局部区域的平均操作来实现。以下是均值滤波的基本原理和步骤: 原理 均值滤波的核心思想是用图像…

常用的激活函数汇总及可视化

1. Sigmoid 函数 公式: Sigmoid ( x ) 1 1 e − x \text{Sigmoid}(x) \frac{1}{1 e^{-x}} Sigmoid(x)1e−x1​特点:输出范围在 (0, 1) 之间。适用于输出为概率的任务(如二分类)。缺点是当输入的绝对值很大时,梯度会变得非常小&#xff…

npm 清除缓存

npm cache clean --forcenpm cache verify# 安装依赖 npm install# 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题 npm install --registryhttps://registry.npmmirror.com npm彻底清理缓存_npm cache verify-CSD…

Vue 中实现视频播放的艺术

随着前端技术的飞速发展,视频播放在 Web 应用中已经成为了一个不可或缺的功能。从社交媒体平台到教育网站,再到在线购物平台,视频元素无处不在。而 Vue.js 作为当今最流行的前端框架之一,在实现视频播放时提供了很多强大的工具和技…