『运维备忘录』之 Cron 命令详解

运维人员不仅要熟悉操作系统、服务器、网络等只是,甚至对于开发相关的也要有所了解。很多运维工作者可能一时半会记不住那么多命令、代码、方法、原理或者用法等等。这里我将结合自身工作,持续给大家更新运维工作所需要接触到的知识点,希望大家喜欢。

今天我们要讲的是 Crontab


一、简介

crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于crontab文件中,以供之后读取和执行。

用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:

Min  Hour Day  Mon  Weekday
*    *    *    *    *  command to be executed
┬    ┬    ┬    ┬    ┬
│    │     │    │    └───────────   Day of Week   (0=Sun .. 6=Sat)
│    │     │    └─────────────    Month         (1..12)
│    │     └────────────────   Day of Month  (1..31)
│    └──────────────────     Hour          (0..23)
└─────────────────────   Minute        (0..59)

FieldRangeSpecial characters
Minute0 - 59, - * /
Hour0 - 23, - * /
Day of Month1月31日, - * ? / L W
Month1月12日, - * /
Day of Week0 - 6, - * ? / L #

二、操作命令

 cron 是 linux 的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:

# 操作系统为Linux 7版本及以上:
systemctl start   crond    #启动服务
systemctl stop    crond    #关闭服务
systemctl restart crond    #重启服务
systemctl reload  crond    #重新载入配置
systemctl status  crond    #查看crontab服务状态
systemctl enable  crond    #开启开机自动启动
systemctl disable crond    #禁止开机自动启动# 操作系统为Linux 7版本以下:
/sbin/service crond start    #启动服务
/sbin/service crond stop     #关闭服务
/sbin/service crond restart  #重启服务
/sbin/service crond reload   #重新载入配置
ntsysv                       #查看crontab服务是否已设置为开机启动
chkconfig –level 35 crond on #开机自动启动

三、用户任务调度文件

用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab 文件都被保存在 /var/spool/cron目录中。其文件名与用户名一致。

四、使用者权限文件

  • 文件:/etc/cron.deny,说明:该文件中所列用户不允许使用crontab命令
  • 文件:/etc/cron.allow,说明:该文件中所列用户允许使用crontab命令
  • 文件夹:/var/spool/cron/,说明:所有用户crontab文件存放的目录,以用户名命名
  1. /etc/cron.deny和/etc/cron.allow这两个使用控制文件的格式都是每行一个用户, 两个文件都不允许空格。
  2. 如果使用控制文件被修改了,cron 守护进程(crond)不必被重启。
  3. 使用控制文件在每次用户添加或删除一项 cron 任务时都会被读取。
  4. 无论使用控制文件中的规定如何,root 都总是可以使用 cron。
  5. 如果 cron.allow 文件存在,只有其中列出的用户才被允许使用 cron,并且 cron.deny 文件会被忽略。
  6. 如果 cron.allow 文件不存在,所有在 cron.deny 中列出的用户都被禁止使用 cron。

五、命令参数

  • -u user:用来设定某个用户的crontab服务,例如,“-u ixdba”表示设定ixdba用户的crontab服务,此参数一般有root用户来运行。
  • -e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。
  • -l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。
  • -r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。
  • -i:在删除用户的crontab文件时给确认提示。 

六、使用实例

表达式说明
*/15 * * * *Every 15 mins
0 * * * *Every hour
0 */2 * * *Every 2 hours
15 2 * * *At 2:15AM of every day
15 2 * * ?At 2:15AM of every day
10 9 * * 5At 9:10AM of every Friday
0 0 * * 0At midnight of every Sunday
15 2 * * 1LAt 2:15am on the last monday of every month
15 0 * * 4#2At 00:15am on the second thursday of every month
0 0 1 * *Every 1st of month (monthly)
0 0 1 1 *Every 1st of january (yearly)
@rebootEvery reboot
@yearlyRun once every year, "0 0 1 1 *"
@annually(same as @yearly)
@monthlyRun once every month, "0 0 1 * *"
@weeklyRun once every week, "0 0 * * 0"
@dailyRun once each day, "0 0 * * *"
@midnight(same as @daily)
@hourlyRun once an hour, "0 * * * *"

七、小窍门

1. 快速添加crontab,适用于通过脚本批量操作:

echo "@reboot echo hi" | crontab

2. crontab执行shell时,只能识别为数不多的环境变量,普通的环境变量是无法识别的,所以在编写shell时,最好使用export重新声明变量,确保脚本执行。

3. 定时任务添加注释,以便于其他人查看是什么任务。

4. 避免不必要的程序以及命令输出。

5. 推荐一个可以帮我们解读表达式的定时语句解析工具:https://crontab.guru/

6. 如果命令在控制台执行成功,而在crontab执行失败,我们需要考虑是否命令涉及的环境变量在crontab和控制台间存在差异。

7. /var/log/cron 日志中包含任务执行记录,配置错误提示,任务配置编辑重载记录,服务开启等记录。

8. 新创建的crontab任务,不会马上执行,至少要过2分钟才行。如果重启crontab则马上执行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/666511.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机设计大赛 深度学习 机器视觉 人脸识别系统 - opencv python

文章目录 0 前言1 机器学习-人脸识别过程人脸检测人脸对其人脸特征向量化人脸识别 2 深度学习-人脸识别过程人脸检测人脸识别Metric Larning 3 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习 机器视觉 人脸识别系统 该项目…

ping 不支持代理,命令行测试外网网址请使用 curl 测试,如何测试?

如果你想通过命令行测试外网网址的可达性,并且因为 ping 命令不支持通过代理服务器进行操作,你可以使用 curl 命令来测试。curl 是一个强大的工具,可以用来传输数据,它支持多种协议,包括 HTTP、HTTPS 等,而…

6个国内可用的chat大模型

文心一言 - 一款适合中国人使用的AI智能助理,能够帮助用户进行对话、生成内容等工作,提高工作效率和创作水平 文心一言 文心一言 App 是一款适合中国人的 AI 智能助理,它的功能点主要包括: 工作生活助理:该应用通过简…

OJ刷题:《剑指offer》之单身狗1、2 !(巧用位操作符,超详细讲解!)

目录 1.单身狗1 1.1 题目描述 1.2排序寻找 1.3巧用位操作符 2.单身狗2 1.1 题目描述 1.2排序寻找 1.3巧用位操作符 不是每个人都能做自己想做的事,成为自己想成为的人。 克心守己,律己则安! 创作不易,宝子们!如…

智慧未来已至:人工智能与数字孪生共筑城市新纪元

随着科技的飞速发展,人工智能与数字孪生技术正逐步成为智慧城市建设的核心驱动力。 这两项技术的结合,不仅将彻底改变城市的传统面貌,更将引领我们走向一个更加高效、便捷、绿色的未来。 一、智慧城市的新内涵 智慧城市,是指在城…

移动Web——less

1、less-简介 less是一个CSS预处理器,Less文件后缀是.less。扩充了CSS语言,使CSS具备一定的逻辑性、计算能力注意:浏览器不识别Less代码,目前阶段,网页要引入对应的CSS文件VS code插件:Easy LESS&#xff…

Kafka系列(二)将消息数据写入Kafka系统--生产者【异步发送、同步发送、单线程发送、多线程发送、配置生产者属性、自定义序列化、自定义主题分区】

Kafka系列 发送消息到 Kafka 主题了解异步模式了解同步模式线程发送消息的步骤生产者用单线程发送消息生产者用多线程发送消息 配置生产者属性保存对象的各个属性一序列化序列化一个对象序列化对象的存储格式自己实现 序列化的步骤1. 创建序列化对象2. 编写序列化工具类3. 编写…

Mysql运维篇(四) MySQL常用命令

一路走来,所有遇到的人,帮助过我的、伤害过我的都是朋友,没有一个是敌人。如有侵权,请留言,我及时删除! 一、MySQL命令速查表 https://www.cnblogs.com/pyng/p/15560059.html Mysql DBA运维命令大全 - 墨…

【机器学习、深度学习和强化学习原理】

目录 机器学习、深度学习和强化学习都是人工智能的重要领域,它们的代码原理与实现有所不同。机器学习是一种通过训练模型来从数据中学习规律和模式的技术。其代码实现通常包括以下步骤:深度学习是一种模仿人脑神经网络的算法,通过多层神经网络…

批量注册与自动下单:探索速卖通跨境智能系统的操作方法

速卖通跨境智能系统是一款功能强大的软件,可以帮助用户批量注册速卖通买家号、绑定地址、加购加心愿单以及自动下单等任务。 该软件具有以下优势: 强大的指纹系统:采用最新的反指纹技术,可以设置与代理IP相对应的语言和时区&…

Java swing——创建对话框JDialog

之前我们讲了怎么建立一个简易的窗口,链接:http://t.csdnimg.cn/l7QSs,接下来继续讲解窗口的进阶。 对话框 上一篇文章中我们讲到了JFrame是一种顶层容器,本文接下来介绍其余的顶层容器。 跟JFrame一样,,这…

C/C++ 回调函数 callback 异步编程

一、C语言的回调函数 1.小试牛刀 #include <iostream> using namespace std; #include <memory> #include <stdlib.h>int add(int a, int b) {return a b; }void test01() {// 函数指针可以指向任何类型的函数&#xff0c;只要函数的参数列表和返回值类型…

如何结合ChatGPT生成个人魔法咒语词库

3.6.1 ChatGPT辅助力AI绘画 3.6.1.1 给定主题让ChatGPT直接描述 上面给了一个简易主题演示一下&#xff0c;这是完全我没有细化的提问&#xff0c;然后把直接把这些关键词组合在一起。 关键词&#xff1a; 黄山的美景&#xff0c;生机勃勃&#xff0c;湛蓝天空&#xff0c;青…

厕所革命与可持续发展的“九牧方案”

人类文明的历史&#xff0c;就是厕所的革命史&#xff0c;小小的厕所里&#xff0c;承载着大故事。 2015 年&#xff0c;印度一个名叫娜尔的女孩&#xff0c;因为丈夫不愿意在家盖厕所&#xff0c;向法庭提出了离婚申请&#xff0c;由此引发了全印度“无厕所&#xff0c;无新娘…

OSG帧渲染,如何实现自定义动画效果

看到这个标题,老司机可能会想到OSG动画相关的内容,比如osg::AnimationPath类和osg::AnimationPathCallback类,这些动画类,可以实现按照一定的插值方式,生成路径,物体对象按照生成的路径或者预先指定的路径来完成相应的动作的动画。 路径动画有三种动画模式,分别为单摆环…

【百度Apollo】探索创新之路:深入了解Apollo开放平台

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《linux深造日志》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! ⛳️ 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下…

树莓派突然不能ssh远程连接的踩坑记录及解决方案

在家研究树莓派&#xff0c;远程连接树莓派吃了不少苦&#xff0c;总是一些意想不到的问题出现&#xff0c;明明昨天还能远程连接&#xff0c;今天又不能了。经过一系列排查&#xff0c;终于锁定&#xff1a; 因为我之前设置的树莓派的静态ip地址&#xff0c;但是可能因为是家…

ai创作软件有哪些?这5个软件了解一下

ai创作软件有哪些&#xff1f;随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;在各个领域都展现出了惊人的实力。特别是在内容创作领域&#xff0c;AI技术已经成为了助力创作者们提高效率、释放创意的得力助手。今天&#xff0c;我们将为大家介绍五款AI创作…

软件工程(最简式总结)

目录 第一章:概述 1.软件危机的表现原因 2.常见的软件开发方法包括&#xff1a; 3.软件工程基本原则 4.软件工程三要素 5.设计模式的分类 6.针对变换型数据流设计步骤 7.针对事务型数据流设计步骤 第二章&#xff1a;软件过程 1.软件生命周期 2.软件过程模型 &…

flask_django_python五金电商网络营销的可视化分析研究

前面部分完成了系统需求分析&#xff0c;了解到新闻数据业务方面的需求&#xff0c;系统主要分为用户管理、五金信息管理、在线留言、系统管理等功能。销的可视化研究&#xff0c;并对这些数据进行处理&#xff0c; 然后对这些数据进行可视化分析和统计。 Python 爬虫技术目前来…