Linux 系统定时任务:crontab 典型应用场景练习

目录

一、Linux小实验

[二、crontab 内容复习](#二、crontab 内容复习)

(1)前言

[(2)crond 与 crontab 的关系与区别](#(2)crond 与 crontab 的关系与区别)

(3)crontab的使用

[① 安装crond 服务](#① 安装crond 服务)

[② crontab 命令详解](#② crontab 命令详解)

[③ 定时任务的书写格式](#③ 定时任务的书写格式)

三、实验开始

四、答案总结如下:

五、写入定时任务

1、写入定时任务代码

2、查看定时任务

六、实验总结


一、Linux小实验

本次实验要求:

  1. 在4月份的周一到周三的上午11点执行脚本

  2. 每天早上7点到上午11点且每2小时执行脚本

  3. 每天早上6点执行脚本脚本

  4. 每周六凌晨4点执行脚本

  5. 每周六凌晨4点05执行脚本

  6. 每天早上8:40执行脚本

  7. 在每天早上10:31且之后每隔2小时执行脚本

  8. 每周一到周五2:00执行脚本

  9. 每周一到周五8:00和9:00执行脚本

  10. 每天10:00,16:00执行脚本

++注:本实验的执行脚本指代的是 cmd++


二、crontab 内容复习

为了更好的完成实验,我们先对cron的内容复习。

(1)前言

我们之前学习过at --单一执行的定时任务**,** 但是因为只能执行一次,因此有了crontab -- 循环执行的定时任务**。** 想必大家也见过一个很相似的词 --- **crond (守护进程)。**为防止大家分不清楚这两词,这里进行拓展讲解。

(2)crond 与 crontab 的关系与区别

crond 是系统后台的守护进程,开机自动运行,会持续的读取定时任务的配置,到指定时间就会执行。

crontab是用来增删改查直接的定时任务的。

两者之间的关系:

  • 用户通过crontab命令 写入定时任务;
  • crond服务每分钟扫描配置,到点自动执行;
  • 没有 crond 服务,crontab 配置的任务不会运行。

对比:

  • crontab 是命令,crond 是服务
  • crond 负责执行定时任务,crontab负责管理定时任务。

(3)crontab的使用

① 安装crond 服务

在(2)中我们讲了没有 crond 服务,crontab 配置的任务不会运行。所以我们先安装一下crond 服务。(温馨提示:在安装完成操作系统后,默认会安装 crond 服务工具,且 crond 服务默认就是自启动的),若需要安装则执行如下命令:

bash 复制代码
# 安装, 注意包名写的是crontabs
[root@server ~]# yum  install  crontabs  
 
# 查看crond的状态
[root@server ~]# systemctl status  crond   
② crontab 命令详解
bash 复制代码
# 格式
crontab  [-u | -l| -r | -e]  

# 参数解释
-u  : 指定用户执行定时任务
-l  : 查看定时任务
-r  : 删除定时任务
-ir : 删除定时任务前弹出确认提示
-e  : 编辑定时任务
③ 定时任务的书写格式
bash 复制代码
# 查看crontab 定时任务的书写格式。
root@localhost:~# cat /etc/crontab
  • 写入的命令格式:每一行书写一个工作,每个工作共有6个字段
代表意义 分钟 小时 日期 月份 星期 命令
数字范围 0-59 0-23 1-31 1-12 0-7(0和7表示周日) 执行的动作

特殊字符解释

特殊字符 含义
* 任意时刻
- 表示时间范围
,(逗号) 分割时段
*/数字 指定时间间隔的频率,如:每3分钟执行一次,*/3

++复习到这里相比你已经对定时任务了如执掌了,就差一场实验了,那现在我们开始定时任务实验。++


三、实验开始

回顾实验要求:

  1. 在4月份的周一到周三的上午11点 执行脚本

  2. 每天早上7点到上午11点且每2小时 执行脚本

  3. 每天早上6点 执行脚本

  4. 每周六凌晨4点 执行脚本

  5. 每周六凌晨4点05 执行脚本

  6. 每天早上8:40执行脚本

  7. 在每天早上10:31且之后每隔2小时直至23点 执行脚本

  8. 每周一到周五凌晨2:00 执行脚本

  9. 每周一到周五8:00和9:00 执行脚本

  10. 每天10:00,16:00 执行脚本

++注:本实验的执行脚本指代的是 cmd++

因为定时任务写入格式的神奇设定,因此我们看这种要求都要倒着看,然后按照时间单位的大小,从小到大排序,(分、小时、天、月份、星期)。

(1)第一题

不难看出,第一题排列为 :0分 、上午11点 、 无要求 、 4月份、星期1到星期3;

故第一题为 : 0 11 * 4 1-3 cmd

(2)第二题

依此类推,第二题排列为 :0分、早上7点到11点每两个小时、无要求、无要求、无要求;

故第二题为 :0 7-11/2 * * * (0 7 ,9,11 * * *)

(3)第三题

第三题排列为 :0分、早上六点、无要求、无要求、无要求;

故第三题为 :0 6 * * * cmd

(4)第四题

第四题排列为: 0分、早上四点、无要求、无要求、周六;

故第四题为:0 4 * * 6 cmd

(5)第五题

第五题排列为:5分、早上四点、无要求、无要求、周六;

故第五题为: 5 4 * * 6 cmd

(6)第六题

第六题排列为:40分、早上8点、无要求、无要求、无要求;

故第六题为:40 8 * * * cmd

(7)第七题

第七题排列为:31分·、上午10点到23点 每隔两小时、无要求、无要求、无要求;

故第七题为:31 10-23/2 * * * cmd

(8)第八题

第八题排列为:0分、凌晨2点、无要求、无要求、周一到周五;

故第八题为: 0 2 * * 1-5 cmd

(9)第九题

第九题排列为:0分、早上8点和9点、无要求、无要求、周一到周五;

故第九题为: 0 8,9 * * 1-5 cmd

(10)第十题

第十题排列为:0分、 早上10点和16点、无要求、无要求、无要求;

故第十题为: 0 10,16 * * * cmd


四、答案总结如下:

bash 复制代码
# 答案:
1.  0 11 * 4 1-3 cmd
2.  0 7-11/2 * * * cmd
3.  0 6 * * * cmd
4.  0 4 * * 6 cmd
5.  5 4 * * 6 cmd
6.  40 8 * * * cmd
7.  31 10-23/2 * * * cmd
8.  0 2 * * 1-5 cmd
9.  0 8,9 * * 1-5 cmd
10.  0 10,16 * * * cmd

0 11 * 4 1-3 cmd
0 7-11/2 * * * cmd
0 6 * * * cmd
0 4 * * 6 cmd
5 4 * * 6 cmd
40 8 * * * cmd
31 10-23/2 * * * cmd
0 2 * * 1-5 cmd
0 8,9 * * 1-5 cmd
0 10,16 * * * cmd

五、写入定时任务

bash 复制代码
# 编辑定时任务
root@localhost:~# crontab -e

1、写入定时任务代码

2、查看定时任务

bash 复制代码
# 查看定时任务
root@localhost:~# crontab -l

六、实验总结

++恭喜你成功的完成了本次实验++

本次 crontab 实验主要围绕循环定时任务的写法展开,通过多种典型定时场景的实战练习,我们熟练掌握了 crontab 时间字段的规则与*/,-等符号的循环用法,能够根据不同需求,快速写出每日、间隔、周期、指定时段等各类循环定时任务,同时理清了定时任务的配置、查看与生效逻辑,完整掌握了 Linux 下循环定时任务的实现方法,为后续自动化脚本执行打下了扎实基础。

相关推荐
小宏运维有点菜3 分钟前
服务器 BMC 管理 IP
服务器·tcp/ip·centos
小饕16 分钟前
RAG学习之- RAG 数据导入完整指南
人工智能·python·学习
平行云19 分钟前
虚拟直播混合式2D/3D应用程序实时云渲染推流解决方案
linux·unity·云原生·ue5·图形渲染·实时云渲染·像素流送
isyangli_blog21 分钟前
openstack 下载打包整套环境
服务器·网络·openstack
不一样的故事12634 分钟前
禁止访问 是 SVN 标准 403 权限拒绝错误
运维·安全·自动化
cyr___43 分钟前
Unity教程(二十六)技能系统 黑洞技能(上)基础实现
学习·游戏·unity·游戏引擎
我想成为你噶叻叻猪44 分钟前
imx6ull板子ping不通ubuntu
linux·运维·ubuntu
星幻元宇VR1 小时前
VR党建蛋椅|以沉浸式体验推动党建学习方式创新
科技·学习·安全·vr·虚拟现实
桌面运维家1 小时前
校园机房vDisk IDV云桌面Linux更新部署方案
linux·运维·服务器
2601_949194261 小时前
Redis的安装教程(Windows+Linux)【超详细】
linux·数据库·redis