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;} }...
Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
Python爬虫实战:研究feedparser库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...
[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...
