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

定时任务详解

1 .定时任务

1.1 概述

  • 定时任务:用于执行在 Linux 中的重复性工作.eg: 命令 (同步系统时间), 脚本 (备份,系统巡检)
  • 定时任务:类似于闹钟

1.2 服务使用流程

服务使用流程 说明
部署 安装这个服务或软件
配置 如何使用这个服务通过配置文件,通过命令。
优化或注意事项 安全……
排障 A 通过错误提示解决。B 学会看日志。AB 高级:让服务输出错误提示或者输出更加详细的错误提示(通过重定向)
其他 1 做好监控 2 做好备份 3 做好日志收集 4 统一认证

1.3 部署定时任务

  • 定时任务软件包名字: cronie, 服务名字 (进程) crond

    -q,查询;-a所有已安装 ;-l 列出软件包安装的所有文件	
    rpm -qa cronie
    rpm -ql cronie
    
目录结构 说明
① /var/spool/cron/ 用户的定时任务的配置文件的目录
② crontab 定时任务管理的命令
③ /var/log/cron 定时任务日志
了解下就行的配置文件
/etc/crontab 不推荐使用这个,系统定时任务的配置文件。
/etc/cron.hourly/ 系统定时任务,每小时运行。
/etc/cron.daily/ 系统定时任务,每天运行。
/etc/cron.weekly/ 系统定时任务,每周运行。
/etc/cron.monthly/ 系统定时任务,每个月运行。
  • 检查是否运行
    image

1) 配置的命令

crontab 用于对定时任务的规则进行增删改查.

crontab 选项 说明
crontab -e edit 编辑当前用户的定时任务 vi /var/spool/cron/root #root 当前用户的名字
crontab -l list 查看当前用户的定时任务 cat /var/spool/cron/root #root 当前用户的名字
[root@oldboy-85-vip-king-v2 oldboy]# crontab -l
no crontab for root用户未设置定时任务[root@oldboy-85-vip-king-v2 oldboy]# crontab -e
no crontab for root - using an empty one用户未设置定时任务,给新建空的.
crontab: installing new crontab更新了定时任务的配置.

2)定时任务书写格式-时间

*  *  *  *  * 
分 时 日 月 周#每天早上 8:30 分 去学校 (go to school)
30 08 * * * go to school#晚上 12 点上床睡觉 (go to bed/sleep) * 00 * * * go to bed #每天的半夜 12 点 00 - 59 每分钟运行。
00 00 * * * go to bed #每天运行备注:表示整点的时候,未说明分钟的时候,我们要指定的分钟,一般是 00。
关于分钟位置上是否写 * :涉及到小时,天,周几的时候,分钟位置上记得写个数 (00)# 每周六半夜 12 点去 玩游戏
* 00 * * 06 game 每周的半夜 12 点 00-59, 每分钟1次
0-5900 00 * * 06 game 每周六的半夜 12 点玩游戏

3) 定时任务时间部分的特殊符号

时间部分特殊符号 说明 案例
/ 每隔 xxx 时间 */2 * * * * 每 2 分钟00 */2 * * * 每 2 个小时
- 表示范围 00 08-22 * * * 08-22 点的每个小时运行
00 08-22/3 * * * 08-22 点的每 3 小时运行
, 表示独立时间 (没规律) 00 08,11,14,17,20 * * *
* 每,全部 / 所有 (没说具体时间) * 在分钟的位置上表示 00-59, 每分钟的意思
* 在小时位置上表 00-23, 每小时的意思.

#每天的上午 7 点到晚上 11 点 每二个小时运行 CMD 命令
00 07-23/2 * * * CMD
07 09 11 13 15 17 19 21 23#定时任务每天 23 点到第 2 天的 7 点运行.
00 23,00-07 * * *

1.5 定时任务案例

  • 同步时间
  • 进行备份
  • 日常循环操作
  • 巡检 + 发送邮件
  • 时间 + 命令格式

1) 案例01 每两分钟同步下系统的时间

  • 使用了什么命令?ntpdate ntp1.aliyun.com
  • 书写定时任务配置文件:
#1. 同步时间 by lidao996 at 20221111
*/2 * * * * /sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1>/dev/null:将命令的 标准输出 重定向到 /dev/null(一个 “黑洞” 设备,丢弃输出内容),避免任务执行时产生多余的输出信息。
2>&1:将命令的 标准错误 也重定向到标准输出的目标(即 /dev/null),确保错误信息也被丢弃,让定时任务后台运行更 “安静”。
  • 调试 (测试,检查)
    • 修改下时间
1 date改下时间即可
  • 日志:这个定时任务是否运行

定时任务日志只能提示是否运行了,但是无法告诉我们是否运行成功.

tail -f /var/log/cronNov 11 11:12:01 oldboy-aliyun-servers CROND[16436]: (root) CMD (/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1)
Aug 8 10:46:20 oldboy-aliyun-servers CROND[16449]: (root) CMD (/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1)
  • 查看定时任务的结果 (时间是否修改,压缩包是否生成)

查看结果,时间是否同步.

2)案例 02:每天定时备份 /etc/ 到 /backup/ 下面

备份时间:业务低谷期.比如凌晨 1 点备份

☑ 命令: tar 命令

☑ 脚本:命令大礼包 .sh 结尾 .bash 结尾

☑ 定时任务配置:(每分钟运行)

☑ 调试完成改为要求的时间

  • 命令:
mkdir -p /backup/
tar zcf /backup/etc-`date +%F_%w`.tar.gz /etc/
  • 脚本
#专用脚本目录:
mkdir -p /server/scripts/#书写脚本
cat backup-etc.sh
tar zcf /backup/etc-date +%F_%w.tar.gz /etc/#执行脚本
sh backup-etc.sh
  • 定时任务 - 时间每分钟或每 2 分钟 (调试)
#2. 定时备份 /etc/ 目录 by lidao996 at 时间
* * * * * /bin/sh /server/scripts/backup-etc.sh >/dev/null 2>&1
  • 检查日志与结果

image

#持续监控目录下文件的详细列表变化。
watch ls -l

image

  • 定时任务 - 调试完成后改为指定的时间运行
#2. 定时备份 /etc/ 目录 by lidao996 at xxxx
#00 01 * * * /bin/sh /server/scripts/backup-etc.sh >/dev/null 2>&1

3) 案例03: 脚本与变量

变量命名规则:

1, 不能以数字开头

2, 如果要用特殊符号,最好使用_

3, 变量名字能够体现出变量作用.

  • 使用:
1 #赋值 修改变量内容(创建)
2 kui="欲练此功必先自宫,如不自宫也能成功"
3 
4 #取值
5 echo $kui
6 欲练此功必先自宫,如不自宫也能成功
  • 变量应用
#写入固定的内容
dir=/server/scripts/
file=backup-etc.shecho $dir $file
/server/scripts/ backup-etc.shecho $dir$file
/server/scripts/backup-etc.sh#写入命令的结果(一般是命令的结果)
time=`date +%F_%w`
echo $time
2025-10-02_4#变量只能赋值一次,显示同个时间
echo $time
2025-10-02_4
  • 变量与命令(命令中如何使用变量)
创建以时间命名的文件 oldboy - 时间.txt
time=date +%F_%wtouch oldboy-$time.txt
  • 在脚本中使用变量
[root@oldboy-aliyun-servers scripts]# cat /server/scripts/backup-etc-var.sh
#!/bin/bash##定义变量
time=`date +%F_%w_%H`##引用变量-备份
tar zcf /backup/etc-$time.tar.gz /etc/#用于查找 /backup/ 目录下超过 30 天的 .tar.gz 格式备份文件并删除,以清理旧备份。
find /backup -type f -name "*.tar.gz" -mtime +30 |xargs rm -f
http://www.hskmm.com/?act=detail&tid=23169

相关文章:

  • 华为wlan无线配置 - 教程
  • PINN训练新思路:把初始条件和边界约束嵌入网络架构,解决多目标优化难题
  • 可持久化数据结构
  • 2025.10.2——1黄
  • 图的匹配
  • Tarjan 算法
  • Mondriaans Dream题解
  • 网络流 最大流 Dinic 算法
  • 2025.10.2 测试
  • 数学章节总结
  • 软件工程_作业一
  • CF VP 记录
  • LabVIEW与PLC 汽车驻车制动自动调整 - 实践
  • 04. 布局管理
  • 关于安装博客园皮肤中有关于配置音乐播放器的补充(awescnb)
  • AGC VP 记录 2
  • 2025 --【J+S 二十连测】-- 第四套 总结
  • Websocket+cpolar:如何轻松实现服务远程访问? - 教程
  • 如何用C语言实现5种基本的排序算法
  • 函数-装饰器基础知识+推导式
  • VUE - 实战 2
  • QBXT2025S刷题 Day1
  • 2025多校冲刺CSP模拟赛1(螳臂复活祭)
  • mobvista三月之旅(In Peking)
  • 大学生HTML期末大作业——HTML+CSS+JavaScript购物商城(草莓) - 指南
  • P6782 [Ynoi2008] rplexq
  • AT_agc040_b [AGC040B] Two Contests
  • AT_arc084_b [ABC077D] Small Multiple 题目分析
  • 287. 寻找重复数
  • 福州市 2025 国庆集训 Day2 前三题题解