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

定时计划任务

定时任务和周期任务

1.1 概述

  1. 定时任务用于执行在 linux 中的重复的工作
    a. 数据备份
    b. 时间同步 ntp
    i. 为什么要时间一致?证书 - 日志查看
    c. 设备巡检
    i. 定期巡检设备的内存 cpu 硬盘网络接口使用率以及一些常规告警信息脚本自动抓取
    ii. 定时计划任务,系统在指定的时间内自动周期执行上面的巡检
    iii. 把巡检结果邮件的形式发送给管理员,发送给老板
  2. 定时任务就像一个闹钟

1.2 部署的流程

1.3 具体实现定时计划

crontab    定时计划任务的核心命令
- e 编辑计划任务
- l 查看计划任务

定时任务要用到的软件包

[root@servera ~]# rpm -qa | grep cronie
cronie-anacron-1.5.7-5.el9.x86_64
cronie-1.5.7-5.el9.x86_64

定时任务常见的目录

/var/spool/cron/         #主要存放用户的定时任务的配置
/var/log/cron              #记录了定时任务的所有日志信息

系统级别的定时任务的目录结构(不建议大家去修改,系统装好就自带给系统自己用的定时任务)

/etc/cron.daily/         #系统每天运行的定时任务
/etc/cron.deny
/etc/cron.hourly/
/etc/cron.monthly/
/etc/cron.weekly/

格式

什么时间                                 什么事情

*   *   *   *   *                        脚本或者 shell 命令

时间

分钟: 0-59
小时: 24 小时格式 0-23
日期: 1-31
月份: 1-12
周几: 0-6

#每天早上 8:30 去学校
30 08  *  *  *  go to shcool

#每天半夜 12 点 上床睡觉
00 00  *  *  *  go to bed

#每天半夜 12: 00-12:59 的每一分钟执行

*  00  *  *  *         go to bed

补充:定时任务的特殊符号

*     每,全部 / 所有 * (00-59)   * (0-23)

/     每隔 xxx 的时间
#每天半夜 12 点到一点,每 2 分钟 上床
*/2  00  *  *  *         go to bed

- 表示范围
# 每天半夜 12 点 00-10 的每一分钟 上床
00-10  00  *  *  *         go to bed

, 表示独立的时间,没有规律
# 每天半夜 12:00 和 12:10 上床
00,10  00  *  *  *         go to bed

#每天 7 点到晚上 23 点每个 2 小时的整点 上床
00  07-23/2  *  *  *         go to bed

事情action

- shell 命令
- script 脚本

1.4 定时任务的案例

1.4.1 同步时间

什么时间做:每一分钟
*   *   *   *   *

问题1:如何解决配置文件中可执行命令的环境变量问题?
解决方法:找到可执行命令的绝对路径 which

/usr/bin/systemctl restart chronyd.service

crontab -e去编辑

crontab -l -u root ---- 查看
*   *   *   *   *   /usr/bin/systemctl restart chronyd.service

1.4.2 文件备份

 需求:每天定时备份 /etc 到 /backup 文件下面,要以时间戳为文件名字

实现步骤:

1. 什么时间:*  *  *  * *
2. 什么事情:
/usr/bin/tar  zcf  /backup/etc-`date +%F_%M`.tar.gz /etc/

问题2:在执行定时任务的时候,脚本或者 shell 命令有输出(正确或者错误),就会报错,输出不是我们需要的内容,就可以用重定向 >  >> /dev/null

问题3:
1.定时任务的脚本命令中,默认只能识别/bin和/usr/bin,其他命令不能识别
2.要识别其他的命令只能用脚本,在计划任务中去执行脚本

方法一:命令行方式(没有成功)
*   *   *   *   *  /usr/bin/tar zcf /backup/etc-`date +%F_%M`.tar.gz /etc/ >/dev/null 2>&1 ----- 失败

方法二:写在 shell 脚本(通用的方法)

[root@servera ~]# cat back_up.sh
#!/bin/bash

tar zcf /backup/etc-`date +%F_%M`.tar.gz /etc/
[root@servera ~]# crontab -l
#02 banckup etc pre min

*   *   *   *   *   /usr/bin/sh  /root/back_up.sh  >/dev/null  2>&1

http://www.dtcms.com/a/393758.html

相关文章:

  • 【脑电分析系列】第23篇:癫痫检测案例:从频谱特征到深度学习模型的CHB-MIT数据集实战
  • `CookieStore` API
  • 数据可视化的中间表方案
  • 编译运行duckdb rust插件模板extension-template-rs
  • 接口测试流程+jmeter并发+面试题(总结)
  • JMeter下载安装及入门教程
  • Oracle体系结构-Java Pool详解
  • ​​Service Worker 缓存 与 HTTP 缓存 是什么关系?
  • c++ 之三/五法则
  • 传输层协议 UDP
  • 关于类和对象(一)
  • 多人协作下的游戏程序架构 —— 分层方案
  • 机器学习中三个是基础的指标:​准确率 (Accuracy)​、精确率 (Precision)​​ 和 ​召回率 (Recall)​
  • 《Web端图像剪辑方案:Canvas API与JavaScript实现》
  • DeepSeek 登《自然》封面,OpenAI 推出 GPT-5-Codex,Notion Agent 首亮相!| AI Weekly 9.15-9.21
  • 多线程-初阶
  • 在 R 语言中,%>% 是 管道操作符 (Pipe Operator),它来自 magrittr 包(后被 dplyr 等 tidyverse 包广泛采用)
  • IMX6ULL学习笔记_Boot和裸机篇(1)--- SEGGER Embedded Studio 和 Uboot 环境搭建
  • 纯JS代码录制网页中的视频(可多线操作)
  • Javase 基础加强 —— 11 线程池
  • 分布式锁-Redis实现
  • 对于ModelScope的AI模型git部署感悟
  • [论文阅读] 人工智能 + 软件工程 | 从“人工扒日志”到“AI自动诊断”:LogCoT框架的3大核心创新
  • 【软考中级 - 软件设计师 - 应用技术】软件工程案例分析之软件测试实践
  • AI:读《老人与海》有感
  • 定制开发开源AI智能名片S2B2C商城小程序:产业互联网时代的创新商业模式
  • .env与.gitignore:现代软件开发中的环境管理与版本控制防护
  • 理解重参数化
  • css 给文本添加任务图片背景
  • CSS中的选择器、引入方式和样式属性