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

Linux crontabs定时执行任务

文章目录

  • 前言
  • 一、安装
  • 二、服务
    • 1. 启动crond服务
    • 2. 关闭crond服务
    • 3. 重启crond服务
    • 4. 设置crond开机启动
    • 5. 禁用crond开机启动
    • 6. 查看crond是否开机启动
    • 7. 重新载入配置
    • 8. 查看crond运行状态
  • 三、使用
    • 1. 查看当前用户的crontab
    • 2. 编辑用户的crontab
    • 3. 删除用户的crontab的内容
  • 四、语法
  • 五、示例


前言

crontab 是 Linux 系统中用于设置周期性被执行的指令的命令。

当安装完成操作系统之后,默认便会启动此任务调度命令。

crond 命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。

注意:新创建的 cron 任务,不会马上执行,至少要过 2 分钟后才可以,当然你可以重启 cron 来马上执行。

Linux 任务调度的工作主要分为以下两类:

1、系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
2、个人执行的工作:某个用户定期要做的工作,例如每隔 10 分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置

注意:本文使用 CentOS 7 环境演示,不同的系统可能存在差异。


一、安装

如果系统已经安装了crontab,此步骤可忽略,如果你的系统未安装则输入以下命令安装crontab:

yum install crontabs

二、服务

1. 启动crond服务

systemctl start crond

2. 关闭crond服务

systemctl stop crond

3. 重启crond服务

systemctl restart crond

4. 设置crond开机启动

systemctl enable crond

5. 禁用crond开机启动

systemctl disable crond

6. 查看crond是否开机启动

systemctl is-enabled crond

7. 重新载入配置

systemctl reload crond

8. 查看crond运行状态

systemctl status crond

请添加图片描述

三、使用

1. 查看当前用户的crontab

crontab -l

2. 编辑用户的crontab

crontab -e

3. 删除用户的crontab的内容

crontab -r

更多的操作和详细说明请参考:Linux crontab 命令

四、语法

确保你的cron作业遵循正确的语法。一个cron作业的基本格式如下:

请添加图片描述

* * * * * command_to_execute
  • 第1个*:分钟(0 - 59)
  • 第2个*:小时(0 - 23)
  • 第3个*:一个月中的日子(1 - 31)
  • 第4个*:月份(1 - 12)
  • 第5个*:一周中的日子(0 - 7),其中0和7都代表星期天

确保你的时间和日期字段正确无误,并且你的命令路径完整(最好使用绝对路径)。

五、示例

每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分…, 每间隔2小时执行 echo “haha”:

开始编辑用户的crontab:

[root@localhost ~]# crontab -e

如果弹出的是vi编辑器,输入 i 进入编辑模式,输入以下内容:

20 0-23/2 * * * echo "haha"

编辑结束时按下 ESC 退出编辑模式,输入 :wq 再回车会保存退出,结果输出如下:

[root@localhost ~]# crontab -e
crontab: installing new crontab

控制台输出 crontab: installing new crontab,表示任务添加成功,且之后三分钟不会执行对应的任务,所以在调试定时器的时候,要把这三分钟考虑进去,如果执行的时间在三分钟内的话,对应的任务则不会生效。

当时可以同时定时执行更多任务,比如定时执行脚本清除日志,如下:

0 0-23/2 * * * echo "haha"
0 1 * * * /data/shell/cleanup_logs.sh

如图:

请添加图片描述

系统会在每天凌晨1点执行 /data/shell/cleanup_logs.sh 脚本文件,达到自动清除日志的目的。

http://www.lryc.cn/news/371443.html

相关文章:

  • QNX简述
  • [Llama3] ReAct Prompt 测试实验
  • nodejs 某音douyin网页端搜索接口及x_bogus、a_bogus(包含完整源码)(2024-06-13)
  • 继承深度剖析
  • 使用 Vue 和 Ant Design 实现抽屉效果的模块折叠功能
  • Springboot整合SpringCache+redis简化缓存开发
  • 关于EOF标识符
  • 家用洗地机排行榜前十名:2024十大王牌机型精准种草
  • 【Chrome插件】如何在Chrome插件开发中处理复杂数据结构的存储
  • MySQL 保姆级教程(二):使用 MySQL 检索数据
  • Sui Bridge在测试网上线并推出10万SUI激励计划
  • Spring系统学习 - Bean的作用域
  • 贪吃蛇双人模式设计(2)
  • mysql什么时候不需要建立索引
  • 热门开源项目推荐:技术与地址概览
  • Golang的channel
  • DIYGW可视化开发工具:微信小程序与多端应用开发的利器
  • docker——基础知识
  • SAP MMRV/MMPV 物料账期月结月底月初开关
  • 五分钟看懂如何解决FP独立站的广告投放问题
  • 学习分享-FutureTask
  • Javaweb02-XML概述
  • Linux shell编程基础
  • 2024.6.12 作业 xyt
  • QTTabBar在重置Internet Explorer后失效
  • Django之云存储(一)
  • 推挽与开漏输出
  • Sora和快手可灵背后的核心技术 | 3DVAE:通过小批量特征交换实现身体和面部的三维形状变分自动编码器
  • ArcGIS Pro SDK (三)Addin控件 2 窗格界面类
  • Ubuntu 20.04.6 LTS系统使用命令编辑静态IP地址【笔记】