今天不想跑,所以才去跑|

凉白茶

园龄:2年4个月粉丝:19关注:7

2023-12-09 15:57阅读: 140评论: 0推荐: 0

Linux p15 定时任务调度

【学习课程】:【【小白入门 通俗易懂】2021韩顺平 一周学会Linux】 https://www.bilibili.com/video/BV1Sv411r7vd/?p=14&share_source=copy_web&vd_source=2c07d62293f5003c919b2df9b2e0549e

定时任务调度

一、crond 任务调度

基本介绍

crontab 进行定时任务的设置

  • 概述

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

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

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

  • 基本语法

    crontab [选项]

    常用选项:

选项 描述
-e 编辑crontab定时任务
-l 查询crontab任务
-r 删除当前用户所有的crontab任务

service crond restart,重启任务调度

  • 快速入门

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

    2. 设置个人任务调度。执行crontab -e命令。

    3. 接着输入任务到调度文件
      如:*/1 * * * * ls -l /etc/ > /tmp/to.txt
      意思说每小时的每分钟执行ls -l /etc/ > /tmp/to.txt命令。然后保存退出。

crond 时间规则

不用特意去记,网上有cron表达式的生成工具。

例子:*/1 * * * * ls -l /etc/ > /tmp/to.txt

  • 5个占位符说明:

    项目 含义 范围
    第一个 "*" 一小时当中的第几分钟 0 - 59
    第二个 "*" 一天当中的第几小时 0 - 23
    第三个 "*" 一个月当中的第几天 1 - 31
    第四个 "*" 一年当中的第几月 1 - 12
    第五个 "*" 一周当中的星期几 0 - 7 (0和7都代表星期日)
  • 特殊符号说明

    特殊符号 含义
    * 代表任何时间。比如第一个 "*" 就代表一小时中每分钟都执行一次的意思
    , 代表不连续的时间。比如 0 8,12,16 * * * 命令,就代表在每天的8点0分,12点0分,16点0分都执行一次命令
    - 代表连续的时间范围。比如 0 5 * * 1-6 命令,代表在周一到周六的凌晨5点0分执行命令
    */n 代表每隔多久执行一次。比如 */10 * * * * 命令,代表每隔10分钟就执行一遍命令
  • 特定时间执行任务案例

    时间 含义
    45 22 * * * 命令 在22点45分执行命令
    0 17 * * 1 命令 每周1的17点0分执行命令
    0 5 1,15 * * 命令 每月1号和15号的凌晨5点0分执行命令
    40 4 * * 1-5 命令 每周1到周5的凌晨4点40分执行命令
    */10 4 * * * 命令 每天的凌晨4点,每隔10分钟执行一次命令
    0 0 1,15 * 1 命令 每月1号和15号,每周1的0点0分都会执行命令。注意:星期几和几号最好不要同时出现,因为他们定义的都是天。非常容易让管理员混乱。

应用实例

  • 案例1: 每隔1分钟,就将当前的日期信息,追加到/tmp/mydate文件中。
    执行crontab -e,输入 */1 * * * * date >> /tmp/mydate,保存退出。

  • 案例2: 每隔1分钟,将当前日期和日历都追加到/home/mycal文件中。
    步骤:
    (1) vim /home/my.sh 写入内容 date >> /home/mycalcal >> /home/mycal
    (2) 给 my.sh增加执行权限,chmod u+x /home/my.sh
    (3) crontab-e 增加 */1 * * * * /home/my.sh

  • 案例3: 每天凌晨2:00 将mysql数据库 testdb,备份到文件中。提示:指令为
    mysqldump -u root -p 密码 数据库 >> /home/db.bak
    步骤:

    (1) crontab-e
    (2) 0 2 * * * mysqldump -u root -p root testdb >> /home/db.bak

二、at 任务调度

基本介绍

  1. at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行。

  2. 默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。

  3. at命令是一次性定时计划任务,执行完一个任务后不再执行此任务。

  4. 在使用at命令的时候,一定要保证atd进程的启动,可以使用相关指令来查看,ps -ef | grep atd 可以检测atd是否在运行。

at命令格式

指令:at [选项] [时间]

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

  • at命令选项

    选项 含义
    -m 当指定的任务被完成后,将给用户发送邮件,即使没有标准输出
    -I aq的别名
    -d atrm的别名
    -v 显示任务将被执行的时间
    -c 打印任务的内容到标准输出
    -V 显示版本信息
    -q <队列> 使用指定的队列
    -f <文件> 从指定文件读入任务而不是从标准输入读入
    -t <时间参数> 以时间参数的形式提交要运行的任务
  • 其他指令

    1. atq,查看系统中还未执行的工作任务;

    2. atrm 编号,删除已经设置的任务;

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: 明天17点钟,输出时间到指定文件内比如/root/date100.log

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

本文作者:凉白茶

本文链接:https://www.cnblogs.com/zh-Note/p/17891078.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   凉白茶  阅读(140)  评论(0编辑  收藏  举报
历史上的今天:
2022-12-09 Java的动态绑定机制
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.

作曲 : Reol

作词 : Reol

fade away...do over again...

fade away...do over again...

歌い始めの一文字目 いつも迷ってる

歌い始めの一文字目 いつも迷ってる

どうせとりとめのないことだけど

伝わらなきゃもっと意味がない

どうしたってこんなに複雑なのに

どうしたってこんなに複雑なのに

噛み砕いてやらなきゃ伝わらない

ほら結局歌詞なんかどうだっていい

僕の音楽なんかこの世になくたっていいんだよ

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

僕は気にしない 君は気付かない

何処にももういないいない

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

忘れていく 忘れられていく

We don't know,We don't know.

目の前 広がる現実世界がまた歪んだ

目の前 広がる現実世界がまた歪んだ

何度リセットしても

僕は僕以外の誰かには生まれ変われない

「そんなの知ってるよ」

気になるあの子の噂話も

シニカル標的は次の速報

麻痺しちゃってるこっからエスケープ

麻痺しちゃってるこっからエスケープ

遠く遠くまで行けるよ

安定なんてない 不安定な世界

安定なんてない 不安定な世界

安定なんてない きっと明日には忘れるよ

fade away...do over again...

fade away...do over again...

そうだ世界はどこかがいつも嘘くさい

そうだ世界はどこかがいつも嘘くさい

綺麗事だけじゃ大事な人たちすら守れない

くだらない 僕らみんなどこか狂ってるみたい

本当のことなんか全部神様も知らない

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

僕は気にしない 君は気付かない

何処にももういないいない

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

忘れていく 忘れられていく

We don't know,We don't know.