Linux 实操篇--定时任务调度

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: Linux 实操篇--定时任务调度

Linux 实操篇-定时任务调度

crond 任务调度

crontab 进行定时任务的设置

概述

任务调度:是指系统在某个时间执行的特定的命令或程序。

任务调度分类:1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等

个别用户工作:个别用户可能希望执行某些程序,比如对mysql 数据库的备份。

示意图

基本语法

crontab [选项]

常用选项

快速入门

设置任务调度文件:/etc/crontab

设置个人任务调度。执行crontab –e 命令。

接着输入任务到调度文件

如:*/1 * * * * ls –l /etc/ > /tmp/to.txt

意思说每小时的每分钟执行ls –l /etc/ > /tmp/to.txt 命令

参数细节说明

5 个占位符的说明

特殊符号的说明

特殊时间执行案例

应用实例

  1. 案例1:每隔1 分钟,就将当前的日期信息,追加到/tmp/mydate 文件中
    */1 * * * * date >> /tmp/mydate
  2. 案例2:每隔1 分钟, 将当前日期和日历都追加到/home/mycal 文件中

步骤:

(1) vim /home/my.sh 写入内容date >> /home/mycal 和cal >> /home/mycal

(2) 给my.sh 增加执行权限,chmod u+x /home/my.sh

(3) crontab -e 增加*/1 * * * * /home/my.sh

  1. 案例3: 每天凌晨2:00 将mysql 数据库testdb ,备份到文件中。提示: 指令为

mysqldump -u root -p 密码数据库> /home/db.bak

步骤(1) crontab -e

步骤(2) 0 2 * * * mysqldump -u root -proot testdb > /home/db.bak

crond 相关指令

conrtab –r:终止任务调度。

crontab –l:列出当前有那些任务调度

service crond restart [重启任务调度]

at 定时任务

基本介绍

  1. at 命令是一次性定时计划任务,at 的守护进程atd 会以后台模式运行,检查作业队列来运行。
  2. 默认情况下,atd 守护进程每60 秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。
  3. at 命令是一次性定时计划任务,执行完一个任务后不再执行此任务了
  4. 在使用at 命令的时候,一定要保证atd 进程的启动, 可以使用相关指令来查看

ps -ef | grep atd //可以检测atd 是否在运行

画一个示意图

at 命令格式

at [选项] [时间]

Ctrl + D 结束at 命令的输入, 输出两次

at 命令选项

at 时间定义

at 指定时间的方法:
  1. 接受在当天的hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。例如:04:00
  2. 使用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4 点)等比较模糊的词语来指定时间。
  3. 采用12 小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。例如:12pm
  4. 指定命令执行的具体日期,指定格式为month day(月日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年),指定的日期必须跟在指定时间的后面。例如:04:00 2021-03-1
  5. 使用相对计时法。指定格式为:now + count time-units ,now 就是当前时间,time-units 是时间单位,这里能够是minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count 是时间的数量,几天,几小时。例如:now + 5 minutes
  6. 直接使用today(今天)、tomorrow(明天)来指定完成命令的时间。
应用实例

案例1:2 天后的下午5 点执行/bin/ls /home

案例2:atq 命令来查看系统中没有执行的工作任务

案例3:明天17 点钟,输出时间到指定文件内比如/root/date100.log

案例4:2 分钟后,输出时间到指定文件内比如/root/date200.log

案例5:删除已经设置的任务, atrm 编号

atrm 4 //表示将job 队列,编号为4 的job 删除


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
监控 Unix Linux
|
4月前
|
算法 Unix Linux
linux线程调度策略
linux线程调度策略
81 0
|
23天前
|
人工智能 算法 大数据
Linux内核中的调度算法演变:从O(1)到CFS的优化之旅###
本文深入探讨了Linux操作系统内核中进程调度算法的发展历程,聚焦于O(1)调度器向完全公平调度器(CFS)的转变。不同于传统摘要对研究背景、方法、结果和结论的概述,本文创新性地采用“技术演进时间线”的形式,简明扼要地勾勒出这一转变背后的关键技术里程碑,旨在为读者提供一个清晰的历史脉络,引领其深入了解Linux调度机制的革新之路。 ###
|
25天前
|
算法 Linux 定位技术
Linux内核中的进程调度算法解析####
【10月更文挑战第29天】 本文深入剖析了Linux操作系统的心脏——内核中至关重要的组成部分之一,即进程调度机制。不同于传统的摘要概述,我们将通过一段引人入胜的故事线来揭开进程调度算法的神秘面纱,展现其背后的精妙设计与复杂逻辑,让读者仿佛跟随一位虚拟的“进程侦探”,一步步探索Linux如何高效、公平地管理众多进程,确保系统资源的最优分配与利用。 ####
66 4
|
26天前
|
缓存 负载均衡 算法
Linux内核中的进程调度算法解析####
本文深入探讨了Linux操作系统核心组件之一——进程调度器,着重分析了其采用的CFS(完全公平调度器)算法。不同于传统摘要对研究背景、方法、结果和结论的概述,本文摘要将直接揭示CFS算法的核心优势及其在现代多核处理器环境下如何实现高效、公平的资源分配,同时简要提及该算法如何优化系统响应时间和吞吐量,为读者快速构建对Linux进程调度机制的认知框架。 ####
|
2月前
|
Linux
Linux Crontab 查看定时任务启动没
【10月更文挑战第20天】在Linux系统中,crontab用于设置周期性执行的任务。查看当前用户的Crontab任务列表,使用`crontab -l`;查看所有用户任务,使用`sudo crontab -l`或指定用户`sudo crontab -u username -l`。
64 5
|
2月前
|
存储 网络协议 Linux
AWS实操-EC2-创建购买linux(centos)EC2服务器
AWS实操-EC2-创建购买linux(centos)EC2服务器
|
4月前
|
存储 运维 监控
运维.Linux下执行定时任务(中:Cron的常用替代方案)
本文是关于Linux下执行定时任务系列的第二部分,主要探讨除了Cron之外的常用替代方案。介绍了Systemd Timers、Anacron及at命令三种工具,它们分别适用于不同场景下的定时任务需求。文章详细分析了每种工具的特点、工作原理、基本使用方法及其高级功能,并对比了它们各自的优缺点,帮助读者根据实际情况选择最适合的定时任务解决方案。此外,还提供了指向具体实例和进一步阅读材料的链接。
157 4
运维.Linux下执行定时任务(中:Cron的常用替代方案)
|
4月前
|
资源调度 监控 网络协议
在Linux中,如何进行系统资源调度?
在Linux中,如何进行系统资源调度?
|
4月前
|
监控 Linux 调度
在Linux中,如何进行调度任务?什么是 crontab 并解释 crontab 中的字段?
在Linux中,如何进行调度任务?什么是 crontab 并解释 crontab 中的字段?