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

Linux Crontab命令定时任务基本语法与操作教程

Linux Crontab命令定时任务基本语法与操作教程

一、Crontab查看编辑重启

1、查看crontab定时执行任务列表

crontab -l

2、编辑crontab定时执行任务

crontab -e

3、删除crontab定时任务

crontab -r

4、相关命令:

sudo service crond start #启动服务

sudo service crond stop #关闭服务

sudo service crond restart #重启服务

sudo service crond reload #重新载入配置

sudo service crond status #查看服务状态

二、Crontab基本格式语法

crontab 的时间表达式:

基本格式 :

*  *  *  *  *  command

分  时 日 月 周  命令

先来看一个例子。每天凌晨1:00执行备份程序:0 1 * * * /root/backup.sh 。其中/root/backup.sh 这是脚本路径,要使用绝对路径,前面的日期格式请直接看下图就知道了。

在这里插入图片描述
crontab还有操作符,用来实现一些复杂的时间设定需要。操作符有:

1、* 取值范围内的所有数字 ,代表所有。

2、/ 每过多少个数字 ,代表每隔n长时间。

3、- 从X到Z ,代表一段时间范围。

4、,散列数字,代表分割开多个值。

如果还有搞不懂代码公式的,可以使用这个在线Cron表达式生成器:http://cron.qqe2.com/

三、20个经典Crontab应用实例

在使用时记得替换为自己的脚本路径。请在相应的脚本第一行加上#!/bin/bash,否则脚本在定时任务中无法执行。

  • 实例1:每1分钟执行一次
* * * * * /root/backup.sh
  • 实例2:每小时的第3和第15分钟执行一次
3,15 * * * * /root/backup.sh
  • 实例3:每天的8点到11点的第3和第15分钟执行一次
3,15 8-11 * * * /root/backup.sh
  • 实例4:每隔两天的上午8点到11点的第3和第15分钟执行一次
3,15 8-11 */2 * * /root/backup.sh
  • 实例5:每周一上午8点到11点的第3和第15分钟执行一次
3,15 8-11 * * 1 /root/backup.sh
  • 实例6:每晚的21:30执行一次
30 21 * * * /root/backup.sh
  • 实例7:每月1、10、22日的4 : 45执行一次
45 4 1,10,22 * * /root/backup.sh
  • 实例8:每周六、周日的1 : 10执行一次
10 1 * * 6,0 /root/backup.sh
  • 实例9:每天18 : 00至23 : 00之间每隔30分钟执行一次
0,30 18-23 * * * /root/backup.sh
  • 实例10:每星期六的晚上23: 00 pm执行一次
0 23 * * 6 /root/backup.sh
  • 实例11:每一小时执行一次
* */1 * * * /root/backup.sh
  • 实例12:每天晚上23点到第二天7点之间,每隔一小时执行一次
* 23-7/1 * * * /root/backup.sh
  • 实例13: 每个星期的第一天执行一次(即每个星期天晚上24:00开始执行).
@weekly /root/backup.sh
  • 实例14:每个月的15日执行一次.
0 11 15 * * /root/backup.sh
  • 实例15:每个月的第一天执行一次(即每个月的1日凌晨0点开始执行).
@monthly /root/backup.sh
  • 实例16: 在指定的月份执行一次(在1月,4月和 6月每天晚上0点执行一次).
0 0 * jan,apr,jun * /root/backup.sh
  • 实例17: 重启后执行一次.
@reboot /root/backup.sh
  • 实例18:定时任务执行后发一封邮件通知.
MAILTO="raj"1 1 * * * /root/backup.sh
  • 实例19:指定shell (默认的是/bin/bash)
SHELL=/bin/sh1 1 * * * /root/backup.sh
  • 实例20:指定环境变量.
PATH=/sbin:/bin:/usr/sbin:/usr/bin1 1 * * * /root/backup.sh

四、Crontab可能存在的问题

4.1 Crontab不立即生效

大家新建的Crontab定时任务保存后需要等待2分钟后才会执行,当然如果想要立即执行可以重启Crontab。当crontab失效时,可以尝试/etc/init.d/crond restart解决问题,或者查看日志看某个任务有没有执行/报错tail -f /var/log/cron。

4.2 Crontab不执行

脚本中涉及文件路径时写全局路径,更新系统时间时区后需要重启cron。当手动执行脚本OK,但是crontab死活不执行时很有可能是环境变量,可尝试在crontab中直接引入环境变量解决问题,例如:

0 * * * * . /etc/profile;/bin/sh /root/backup.sh

4.3 Crontab无权限执行

要注意系统级任务调度与用户级任务调度。只有 root 用户和 crontab 文件的所有者可以在 -e 、-l、-r 和 -v 标志后面使用 UserName 以编辑、列出、除去或验证指定用户的 crontab 文件。

​ root用户的任务调度操作可以通过”crontab –uroot –e”来设置,也可以将调度任务直接写入/etc/crontab文件。

想编辑别的用户的 crontab, 使用root运行下面的命令,同一个格式 (追加 “-u username” 到命令后) 也可以用来列出或删除 crontabs。

crontab -u username -e

4.4 Crontab执行后通知

当Crontab定时任务在你所指定的时间执行后,系统会寄一封信给你,显示该程序执行的内容,可以在日志中/var/log/cron看到。若是你不希望收到这样的通知,请在每一行空一格之后加上 > /dev/null 2>&1 即可。

使用crontab定时执行shell脚本

很多时候我们有希望服务器定时去运行一个脚本来触发一个操作,比如说定时去备份服务器数据、数据库数据等不适合人工经常做的一些操作。

那么今天就来简单说下如何使用crontab定时执行shell脚本。

步骤一 首先我们先看一下是否安装了crontab。一般情况下linux系统会自带crontab及crond。如果没有安装,请使用以下指令安装:yum install vixie-cron yum install crontabs (PS:Ubuntu操作系统下请使用apt-get)

在这里插入图片描述

步骤二 然后我们写一个名字叫做liao.sh的shell脚本。很简单,就是输出一段字符。
在这里插入图片描述
步骤三 我们的目的是每分钟执行一次这个shell脚本,所以要再建立一个存放日志的log文件,然后给予liao.sh权限。
在这里插入图片描述
步骤四 然后我们就要使用crontab了,首先进入它的配置文件,在/etc/crontab 中添加我们的调度命令。注意,该配置文件是一个只读文件,需要使用sudo vi /etc/crontab 指令打开文件,不然有可能没有修改权限。
在这里插入图片描述
文件/etc/crontab中每行任务的描述格式如下:

minute hour day month dayofweek command

minute - 从0到59的整数
hour - 从0到23的整数
day - 从1到31的整数 (必须是指定月份的有效日期)
month - 从1到12的整数 (或如Jan或Feb简写的月份)
dayofweek - 从0到7的整数,0或7用来描述周日 (或用Sun或Mon简写来表示)
command - 需要执行的命令(可用as ls /proc >> /tmp/proc或 执行自定义脚本的命令)
comp表示以comp用户身份来运行

>>表示运行脚本后重定向到log文件中

对于以上各语句,星号()表示所有可用的值。例如在指代month时表示每月执行(需要符合其他限制条件)该命令。
步骤五 开启crontab服务
在这里插入图片描述
步骤六 查看运行结果
在这里插入图片描述

  • 参考博客
  • https://www.cnblogs.com/hustzzl/p/8878664.html
  • https://blog.csdn.net/liao392781/article/details/79278811

相关文章:

Linux Crontab命令定时任务基本语法与操作教程

Linux Crontab命令定时任务基本语法与操作教程 一、Crontab查看编辑重启 1、查看crontab定时执行任务列表 crontab -l 2、编辑crontab定时执行任务 crontab -e 3、删除crontab定时任务 crontab -r 4、相关命令: sudo service crond start #启动服务 sudo …...

文档测试要测什么,如何进行测试?

文档测试要测什么,如何进行测试? 对于交付用户文档来说,以需求、用户手册、安装手册等为主,检查用户文档是否和实际的存在差别,主要从以下几个方面来考虑: 阅读者:文档面向的读者定位要清晰&…...

.net 6 引入EFCore

这里默认使用sql server数据库 DBFirst nuget引入程序集 Microsoft.EntityFrameworkCore Microsoft.EntityFrameworkCore.SqlServer Microsoft.EntityFrameworkCore.Design Microsoft.EntityFrameworkCore.Tools Microsoft.Extensions.Logging.Console 执行脚本 设置DAL…...

MySQL------自定义排序

1、MySQL函数 field() 实现自定义 语法: SELECT * from table_name ORDER BY FIELD(str,str1,str2,str3,…) str: 字段名, str1,str2,str3: 自定义排序的数值 例1排序-所有值: 先姓名排序后出生日期排序 SELECT * from name_info ORDER BY FIELD(name…...

FFMPEG自学二 ⾳频编码实战

一、FFmpeg编码流程二、流程关键函数avcodec_find_encoder:根据指定的AVCodecID查找注册的编码器。 avcodec_alloc_context3:为AVCodecContext分配内存。 avcodec_open2:打开编码器。 avcodec_send_frame:将AVFrame⾮压缩数据给…...

​一致魔芋在北交所上市:市值突破11亿元,吴平夫妇为实控人​

2月21日,湖北一致魔芋生物科技股份有限公司(下称“一致魔芋”,BJ:839273)在北京证券交易所上市。本次上市,一致魔芋的发行价为11.38元/股,发行1350万股,募资总额约为1.54亿元。 本次发行后&…...

进程或线程终止是否会释放锁

线程锁的必要性比如一个多线程抢票程序,tickets作为临界资源,所有的线程都要对它进行判断ticket是否大于0,以及ticket–的操作。用ticket–操作举例,虽然他看起来是一行C语言的代码,但是实际上它的底层汇编经历了三个阶…...

mysql复制表提示某些为null字段无效

sql_mode‘ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION’ explicit_defaults_for_timestamp ON 1、方式1、 首先用下面的命令看下sql_mode show variables like ‘sql_mode’; 如果查询的结果如下&#…...

【数据库】redis 配置文件与发布订阅

目录 配置文件 一,Units 二, INCLUDE 三,NETWORK 1, bind 2, tcp-backlog 3,timeout 4, tcp-keepalive 四,GENERAL 1,daemonize 2, pidfile 3&…...

ChatGPT来了,英语不能丢,但我不想上班

文 / 谷雨(微信公众号:王不留) 好久没写文,可能大伙已把我忘了。春节之后,状态一直不太好。我在2月1号时从老家直接来到了深圳出差,而后以996的工作状态疲于应付工作中的各种问题。 终于这周末休息了两天&a…...

【LeetCode】二叉树的直径 [E](二叉树)

543. 二叉树的直径 - 力扣(LeetCode) 一、题目 给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。 示例 : 给定二叉树 1 / \ 2 3 …...

Mybatis框架详解(全)

目录 MyBatis简介 MyBatis整体架构及运行流程 1.数据源配置文件 2.Sql映射文件 3.会话工厂与会话 4.运行流程 mybatis实现增删改查 Mybatis的获取参数的方式 mapper中自定义映射 mybatis注解开发 mybatis缓存 mybatis分页插件 MyBatis简介 MyBatis 是一款优秀的持久…...

2023年爆火的csgo搬砖项目详细拆解,steam搬砖长期稳定

不懂的同学可以听我下面慢慢道来 我的态度:存在即有意义,没有长久的赚钱项目,但是一定有长久赚钱的人。 我们团队也一直在做这个项目,赚钱是一定的,简单总结:执行力技巧量化。 开门见山 一、steam搬砖项…...

C语言实现动态管理通讯录信息系统(静态通讯录plus版)

文章目录前言:一.动态管理思想1.通讯录结构体声明发生变化2.通讯录结构体初始化发生变化3.通讯录能够动态增容4.通讯录销毁数据二.优化通讯录可持续读写信息1.保存通讯录中的信息到文件中2.加载文件信息到通讯录中三.源码1.text.c2.contact.c3.contact.h前言&#x…...

核心技术: springboot 启动类加载时方法执行的几种实现方式, bean声明周期, 启动执行顺序

目录 1. 业务场景 -> 1.1 初始化操作 -> 1.2 业务操作 -> 1.3优势 2. 实现方式(多种方式,不同思想) -> 2.1 定时调度任务(常用四种方式 task ) --> 2.1.1 Timer(单线程) --> 2.1.2 scheduledExecutorService(多线程并发执行,线程池) --> 2.1…...

拒绝背锅:测试项目中的风险管理一定要知道

测试经理除了要管理产品线的质量保障和日常部门事务工作外,另一项比较重要的就是测试项目全流程的管理。 今天不聊整体的测试项目流程如何开展,而是想聊一聊在同行中比较高频出现的一个字眼:风险管理。 什么是风险管理 引用百度上的解释&a…...

20-js本地存储

js本地存储 localStorage localStorage是window下的对象&#xff0c;可以使用window.localStorage调用&#xff0c;也可以直接使用localStorage调用。 浏览器关闭&#xff0c;localStorage也不会消失 示例&#xff1a; <body><h2>localStorage</h2><…...

ABAP 辨析ON INPUT|REQUEST|CHAIN-INPUT|CHAIN-REQUEST

1、逻辑流 在屏幕开发中&#xff0c;存在如下逻辑流&#xff1a; PBO&#xff08;Process Before Output&#xff09;&#xff1a;屏幕输出之前触发 PAI&#xff08;Process After Input&#xff09;&#xff1a;用户在屏幕中执行操作触发 POH&#xff08;Process On Help-…...

LeetCode:逆波兰式;

150. 逆波兰表达式求值 给你一个字符串数组 tokens &#xff0c;表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 注意&#xff1a; 有效的算符为 、-、* 和 / 。每个操作数&#xff08;运算对象&#xff09;都可以是一个整…...

为什么阳康后,感觉自己变傻了?

不少人在阳康后出现脑力下降的情况&#xff0c;好像脑子里被雾笼罩。脑雾并不是新名词&#xff0c;已经存在了十几年。以前慢性疲劳综合征患者和脑震荡患者会用它来形容自己的症状。脑雾其实是认知障碍&#xff0c;它可由多种原因引起。比如过度劳累、长期酗酒、缺乏睡眠、久坐…...

vscode(仍待补充)

写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh&#xff1f; debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

【第二十一章 SDIO接口(SDIO)】

第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时&#xff0c;你可能需要保留重要的数据&#xff0c;例如通讯录。好在&#xff0c;将通讯录从 iPhone 转移到 Android 手机非常简单&#xff0c;你可以从本文中学习 6 种可靠的方法&#xff0c;确保随时保持连接&#xff0c;不错过任何信息。 第 1…...

【Go】3、Go语言进阶与依赖管理

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课&#xff0c;做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程&#xff0c;它的核心机制是 Goroutine 协程、Channel 通道&#xff0c;并基于CSP&#xff08;Communicating Sequential Processes&#xff0…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01; 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:&#xff08; B &#xff09; A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

MFC 抛体运动模拟:常见问题解决与界面美化

在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...

淘宝扭蛋机小程序系统开发:打造互动性强的购物平台

淘宝扭蛋机小程序系统的开发&#xff0c;旨在打造一个互动性强的购物平台&#xff0c;让用户在购物的同时&#xff0c;能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机&#xff0c;实现旋转、抽拉等动作&#xff0c;增…...

Kafka主题运维全指南:从基础配置到故障处理

#作者&#xff1a;张桐瑞 文章目录 主题日常管理1. 修改主题分区。2. 修改主题级别参数。3. 变更副本数。4. 修改主题限速。5.主题分区迁移。6. 常见主题错误处理常见错误1&#xff1a;主题删除失败。常见错误2&#xff1a;__consumer_offsets占用太多的磁盘。 主题日常管理 …...

基于鸿蒙(HarmonyOS5)的打车小程序

1. 开发环境准备 安装DevEco Studio (鸿蒙官方IDE)配置HarmonyOS SDK申请开发者账号和必要的API密钥 2. 项目结构设计 ├── entry │ ├── src │ │ ├── main │ │ │ ├── ets │ │ │ │ ├── pages │ │ │ │ │ ├── H…...

es6+和css3新增的特性有哪些

一&#xff1a;ECMAScript 新特性&#xff08;ES6&#xff09; ES6 (2015) - 革命性更新 1&#xff0c;记住的方法&#xff0c;从一个方法里面用到了哪些技术 1&#xff0c;let /const块级作用域声明2&#xff0c;**默认参数**&#xff1a;函数参数可以设置默认值。3&#x…...