当前位置: 首页 > 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;它可由多种原因引起。比如过度劳累、长期酗酒、缺乏睡眠、久坐…...

Unity主题系统设计:状态驱动的主题抽象与自动注入方案

1. 这不是换个颜色那么简单&#xff1a;为什么Unity项目里“换肤”总在发布前夜崩盘&#xff1f;你有没有经历过这样的场景&#xff1a;美术同学凌晨两点发来一套新主题资源包&#xff0c;UI设计师说“这次配色更符合品牌调性”&#xff0c;产品说“上线前必须支持深色模式”&a…...

6款高效降AI率工具 改写实力出众

写论文时反复检测出的AI痕迹总让你提心吊胆&#xff1f;别担心&#xff0c;这里整理了6款真正好用的论文降AI率工具&#xff0c;堪称应对AI生成特征的“得力助手”。它们能有效识别并消除AI生成的痕迹&#xff0c;改写能力出众&#xff0c;帮你快速降低查重率&#xff0c;顺利通…...

5个必知的Universal-Updater高级功能:从QR扫描到后台安装

5个必知的Universal-Updater高级功能&#xff1a;从QR扫描到后台安装 【免费下载链接】Universal-Updater An easy to use app for installing and updating 3DS homebrew 项目地址: https://gitcode.com/gh_mirrors/un/Universal-Updater Universal-Updater是一款专为任…...

DS4Windows终极指南:3步让PS手柄在PC上完美运行游戏

DS4Windows终极指南&#xff1a;3步让PS手柄在PC上完美运行游戏 【免费下载链接】DS4Windows Like those other ds4tools, but sexier 项目地址: https://gitcode.com/gh_mirrors/ds/DS4Windows 还在为PS手柄连接Windows电脑后无法识别而烦恼吗&#xff1f;&#x1f3ae…...

应对Claude Code访问不稳定,快速切换至Taotoken的应急方案

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 应对Claude Code访问不稳定&#xff0c;快速切换至Taotoken的应急方案 对于依赖Claude Code进行日常开发或自动化任务的用户来说&a…...

从NLP到RAG:AI标书生成系统的技术架构与落地路径深度剖析

引言2026年2月&#xff0c;国家发改委等八部门联合印发《关于加快招标投标领域人工智能推广应用的实施意见》&#xff0c;明确到2026年底招标文件检测、智能辅助评标、围串标识别等重点场景在部分省市实现全覆盖。同一时期&#xff0c;《招标投标法》修订草案经国务院常务会议原…...

NsEmuTools:10分钟搞定NS模拟器配置,让你专注游戏乐趣

NsEmuTools&#xff1a;10分钟搞定NS模拟器配置&#xff0c;让你专注游戏乐趣 【免费下载链接】ns-emu-tools 一个用于安装/更新 NS 模拟器的工具 项目地址: https://gitcode.com/gh_mirrors/ns/ns-emu-tools 还在为NS模拟器的复杂配置而头疼吗&#xff1f;每次想玩Swit…...

从脚本到系统:设计一个支持插件、限流、重试与监控的 Python 异步爬虫框架

从脚本到系统&#xff1a;设计一个支持插件、限流、重试与监控的 Python 异步爬虫框架 很多人第一次写 Python 爬虫&#xff0c;都是从几十行脚本开始的&#xff1a;requests.get()、BeautifulSoup、for 循环、保存 CSV。它很快&#xff0c;也很有成就感。但真实项目往往不是“…...

TII投稿避坑指南:LaTeX模板编译报错‘xxx-eps-converted-to.pdf not found’的终极解决方案

TII投稿LaTeX避坑实战&#xff1a;从编译报错到完美PDF生成的终极指南 凌晨三点的实验室&#xff0c;屏幕上闪烁的xxx-eps-converted-to.pdf not found错误提示仿佛在嘲笑你连续八小时的徒劳尝试。这不是科幻场景&#xff0c;而是每位用LaTeX撰写TII论文的研究者都可能遭遇的真…...

LSTM、GRU与注意力机制在股票预测中的性能对比与实战指南

1. 项目概述与核心价值在量化金融和算法交易这个行当里&#xff0c;预测股票价格走势一直是个充满诱惑又极具挑战的“圣杯”问题。传统的技术分析和基本面分析&#xff0c;虽然各有拥趸&#xff0c;但在面对市场的高噪声、非线性和突发性事件时&#xff0c;往往显得力不从心。我…...