Linux:如何使用 Crontab
今天想了解一下Linux Crontab。嗯,在Windows上,可以看做和定时任务差不多。
“要在特定时间进行特定工作。”
如果是这样,可以使用crontab
,轻松使用Linux
。
1. 基本 (crontab basic)
先看一下基本的crontab
使用方法吧。在Linux shell
中输入如下内容:
$ crontab -e
那么可以编辑的地方就会加载,这里就是可以设置crontab
的地方。
在这里输入各种crontab
指令后,输入colon(:)
后输入wq
,更新crontab
吧。
相反,如果您想查看当前crontab
中包含哪些内容,请输入以下内容:
$ crontab -l
那么就像用cat
指令读取文件一样,以标准输出显示crontab
内容。
但是(虽然几乎没有)如果想删掉crontab
呢?
在Linux Shell
中输入如下内容:
$ crontab -r
这样就学会了crontab
的基本设置、确认和删除。那么在crontab
上注册一个Cron
,实践一下吧。
如下所示,输入crontab-e
后,请输入以下内容。保存时,像vi
一样输入Colon(:)
后更新为wq
即可。
* * * * * ls -al
有五颗星,还有后面写着命令语,这是基本使用方法。当然,不仅可以使用ShellScript
,还可以使用Linux
命令。这里用ShellScript
的方法进行了说明。
如果有五颗星,就会"每分钟运行一次",让我们仔细看看星星指的是什么吧。
2. 周期设定
2.1 基本格式
一个典型的crontab
文件由五或六个字段组成,每个字段代表一个时间单位,后面跟着要运行的命令。
* * * * * command to execute
- - - - -
| | | | |
| | | | +----- 星期中星期几 (0 - 7) (星期天为0或7)
| | | +------- 月份 (1 - 12)
| | +--------- 一个月中的第几天 (1 - 31)
| +----------- 小时 (0 - 23)
+------------ 分钟 (0 - 59)
2.2 字段详解
*
:代表该字段的所有可能值。例如,第一个星号代表每分钟。,
:用于分隔列表中的项目。例如,1,3,5
代表第1分钟、第3分钟和第5分钟。-
:用于定义范围。例如,1-5
代表从第1分钟到第5分钟。/
:用于指定步长值。例如,*/2
代表每隔两分钟。
2.3 示例
*/15 * * * * command
:每15分钟执行一次命令。0 8 * * * command
:每天早上8点执行一次命令。0 8 1 * * command
:每月1日的早上8点执行一次命令。0 8 * * 5 command
:每个星期五的早上8点执行一次命令。
2.4 特殊字符
@reboot
:指定命令在每次重启时执行。@yearly
:等同于0 0 1 1 *
,每年运行一次。@annually
:同@yearly
。@monthly
:等同于0 0 1 * *
,每月运行一次。@weekly
:等同于0 0 * * 0
,每周运行一次。@daily
:等同于0 0 * * *
,每天运行一次。@hourly
:等同于0 * * * *
,每小时运行一次。
2.6 注意事项
- 命令应该使用绝对路径。
crontab
环境变量和登录shell可能不同,因此建议在命令中使用完整的路径。crontab
默认不会发送邮件,除非你在命令后面加上> /dev/null 2>&1
来忽略输出。- 确保服务是启动的,通常使用
systemctl start cron
或service cron start
。
3. 按周期分类的示例
3.1 每分钟运行
# 每分钟 执行 test.sh
* * * * * /home/script/test.sh
3.2 特定时间执行
# 每周 星期五 上午 5点 45分 执行 test.sh
45 5 * * 5 /home/script/test.sh
3.3 反复执行
# 每日 每时 0分, 20分, 40分 执行 test.sh
0,20,40 * * * * /home/script/test.sh
3.4 范围执行
# 每日 1点0分到30分 每分钟 执行 test.sh
0-30 1 * * * /home/script/test.sh
3.5 间隔执行
# 每间隔 10分钟 执行 test.sh
*/10 * * * * /home/script/test.sh
3.6 稍微复杂执行
# 5日到6日 2点,3点,4点 每10分 执行 test.sh
*/10 2,3,4 5-6 * * /home/script/test.sh
4. 使用小贴士
4.1 一行只写一个命令
# 错误的例子
* * * 5 5
/home/script/test.sh
# 好的例子
* * * 5 5 /home/script/test.sh
4.2 加个注释
# 注释 #
#--------------------#
# 这是注释 #
#--------------------#
#
输入,后面出现的全部文字都可以进行注释。
5. 日志 (cron logging)
使用crontab
定期处理作业是很好的,但有时想留下有关处理明细的日志。那个时候像下面一样写一下:
* * * * * /home/script/test.sh > /home/script/test.sh.log 2>&1
如上填写,每分钟更新test.sh.log
文件,以了解作业内容是如何处理的。如果删除2>&1
,ShellScript
只显示标准输出内容。2>&1
就在这里确认吧。
但是,如果这个运行太频繁,而且需要持续加载,所以要继续保留日志的话,输入如下:
* * * * * /home/script/test.sh >> /home/script/test.sh.log 2>&1
那么就可以确认日志一直在累积。但是,如果日志堆积过多,会影响Linux
的性能,因此需要偶尔空出或重新创建文件的意识。
相反,日志是为不要的cron
输入如下内容:
* * * * * /home/script/test.sh > /dev/null 2>&1
6. 备份 (crontab backup)
好,如果使用 crontab-r
或者不小心把crontab
目录弄丢,现有的crontab
明细都没了,真的会很慌张的。所以让我们定期备份crontab
吧。 备份有如下方法。
crontab -l > /home/bak/crontab_bak.txt
把crontab
的内容做成txt
文件保存。好,这个也能实现自动化吗?
50 23 * * * crontab -l > /home/bak/crontab_bak.txt
这样做就可以了吧?这是每天晚上11点50分备份crontab
的Cron
指令。😃
简单地了解了一下crontab
。如果有需要添加的内容或与实际不符的部分,请留言。
相关文章:
Linux:如何使用 Crontab
今天想了解一下Linux Crontab。嗯,在Windows上,可以看做和定时任务差不多。 “要在特定时间进行特定工作。” 如果是这样,可以使用crontab,轻松使用Linux。 1. 基本 (crontab basic) 先看一下基本的crontab使用方法吧。在Linu…...
AI模型:追求全能还是专精?-- 之7 智能工厂程序设计
Q1、感觉上上面离我想做的事情却来越远了。我们跳过讨论直接进入程序设计吧。StringProcessor(文字/信息/数字)抽象代理工厂-创造 Universal given时空区域 |bar PROCESS: 页面版块的图式schema/概念的KE图式CaseFilter 一般应用工厂-制造- General sign…...

如何在本地服务器部署SeaFile自托管文件共享服务结合内网穿透打造私有云盘?
文章目录 1. 前言2. SeaFile云盘设置2.1 Owncould的安装环境设置2.2 SeaFile下载安装2.3 SeaFile的配置 3. cpolar内网穿透3.1 下载安装3.2 Cpolar注册3.3 Cpolar云端设置3.4 Cpolar本地设置 4.公网访问测试5.结语 1. 前言 本文主要为大家介绍,如何使用两个简单软件…...

学习记录:js算法(二十五):合并两个有序链表
文章目录 合并两个有序链表我的思路网上思路 总结 合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 图一 示例 1:(如图一) 输入:l1 [1,2,4], l2 [1,3,4] …...

43. 1 ~ n 整数中 1 出现的次数【难】
comments: true difficulty: 中等 edit_url: https://github.com/doocs/leetcode/edit/main/lcof/%E9%9D%A2%E8%AF%95%E9%A2%9843.%201%EF%BD%9En%E6%95%B4%E6%95%B0%E4%B8%AD1%E5%87%BA%E7%8E%B0%E7%9A%84%E6%AC%A1%E6%95%B0/README.md 面试题 43. 1 ~ n 整数中 1 …...

K8S - 理解volumeMounts 中的subpath
在上一篇文章中 springboot service如何动态读取外部配置文件 介绍了springboot 中如何实时读取外部配置文件的内容 部署在K8S 接下来我把它部署在k8s 首先, 我们把配置文件放入项目某个目录 这步部是必须的, 毕竟我们要引入是项目外部的文件…...

java工程师成功转型大数据
时间:2024年09月06日 作者:小蒋聊技术 邮箱:wei_wei10163.com 微信:wei_wei10 音频:喜马拉雅 希望大家帮个忙!如果大家有工作机会,希望帮小蒋推荐一下,小蒋希望遇到一个认真做事…...

visual studio 2022更新以后,之前的有些工程编译出错,升级到Visual studio Enterprise 2022 Preview解决
系列文章目录 文章目录 系列文章目录前言一、解决方法 前言 今天遇到一个问题:visual studio 2022升级成预览版以后,之前的有些工程编译出错。首先代码、项目设置都没有改变,只是更新了visual studio 2022。 在编译工程时,编译器…...
Linux 性能调优技巧
1理解 Linux 性能的基本组成 CPU 使用率:衡量 CPU 在单位时间内被占用的程度。内存使用:关注的是活跃内存与缓存内存的比例,以及是否有过多的交换。I/O 性能:磁盘读写速度直接影响应用程序的响应时间和吞吐量。网络性能ÿ…...
【网络安全】WordPress Uncontrolled Resource Consumption
未经许可,不得转载。 文章目录 WordPresswp-cron.php实战漏洞危害解决措施WordPress WordPress 是全球最广泛使用的内容管理系统(CMS),目前约有 43% 的网站依赖于它。由于其用户友好的界面和丰富的插件功能,WordPress 成为了全球最受欢迎的 CMS。 然而,在使用 WordPres…...

gitee绑定公钥后依旧无法使用_gitee push添加公钥无效
解决: 步骤按照官网操作即可:gitee官方说明 看看远程地址是否使用的http模式,是的话换ssh模式...
Linux 删除 当前下的 mysql-8.0.31 空文件夹
在Linux中,如果你想要删除当前目录下的名为mysql-8.0.31的空文件夹(即该文件夹内没有任何文件或子文件夹),你可以使用rmdir命令。但是,如果mysql-8.0.31文件夹并非完全为空(即它包含文件或子文件夹…...

2024,中国服务器操作系统迎云智主升浪
“主升浪”描述了股市中一轮行情中涨幅最大、上升持续时间最长的阶段。2024年,云与AI深度融合形成了数字经济主升浪,从而打开了中国服务器操作系统的黄金机遇期。 2024年注定将成为非常不平凡的一年。不仅是实现“十四五”规划目标任务的关键一年&#x…...

STM32快速复习(九)RTC时钟模块
文章目录 前言一、RTC是什么?RTC的工作原理?二、库函数以及示例1.标准库函数2.示例代码 总结 前言 STM32 的实时时钟(RTC)是一个独立的定时器。 STM32 的 RTC 模块拥有一组连续计数的计数器,在相应软件配置下…...

Nacos注册中心与OpenFeign远程调用
文章目录 一、注册中心原理二、Nacos注册中心三、服务注册四、服务发现五、OpenFeign 一、注册中心原理 在微服务当中必须有两个角色 服务提供者:提供接口供其它微服务访问 服务消费者:调用其它微服务提供的接口 在大型微服务项目中,服务提供…...

【基础算法总结】双指针
目录 一,双指针算法介绍二,算法原理和代码实现283.移动零1089.复写零202.快乐数11.盛最多水的容器611.有效三角形的个数LRC179.和为s的两个数15.三数之和18.四数之和 三,算法总结 一,双指针算法介绍 双指针算法是基础算法之一&am…...

教你制作一本一对一授权才能阅读的样本册
在这个信息时代,保护个人隐私变得越来越重要。一对一授权阅读机制,正是为了满足这一需求而诞生。今天,就让我来教你如何制作一本只有一对一授权才能阅读的样本册。这不仅适用于保护个人隐私,还能为企业、研究机构等提供安全、高效…...

【DEV工具-IDEA】idea的光标变成黑块了?
项目场景: 解决:windows:按一下insert键。...

没通过算法备案 或许是这几点你没做好
没通过算法备案 或许是这几点你没做好 当企业提交算法备案遭遇“不予通过”时,往往是因为一些看似微小却至关重要的细节未能达到标准。以下是一些常见的原因,希望能为准备备案的企业提供一些预警和指导: ICP备案缺失:互联网信息服…...
力扣172.阶乘后的0
class Solution {public int trailingZeroes(int n) {int ans 0;//本质:每5个数有一个5的倍数,每25个数有一个25的倍数……int num 5;while(n / num ! 0) {ans n/num;num * 5;}return ans;} }...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...

Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列,以便知晓哪些列包含有价值的数据,…...

USB Over IP专用硬件的5个特点
USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...