目录

一 crond任务调度

1 概述

任务调度

任务调度分类

2 基本语法

3 常用选项

4 快速入门

任务

步骤

参数细节说明

特殊符号说明

5 实用案例

案例一:每隔1分钟,就讲当前的日期信息追加到/tmp/mydate文件中

案例二:每隔1分钟,将当前日期和日历都追加到/tmp/mycal文件中

6 crond相关指令

二 at定时任务

1 基本介绍

2 at命令格式

3 at命令选项

4 at时间定义

5 应用实例

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

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

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

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

案例5:删除已经设置的任务

案例6:2min之后执行一个sh脚本


一 crond任务调度

crontab 进行 定时任务的设置

1 概述

任务调度

是指系统在某个时间执行的特定的命令或程序

任务调度分类

(1)系统工作:有些重要的工作必须周而复始的执行,比如病毒扫描

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

crond任务调度原理图如下图所示

crond是linux的后台程序

2 基本语法

crontab 选项

3 常用选项

-e    edit编辑crontab定时任务

-l     list查询crontab任务

-r    remove删除当前用户所有的crontab任务

4 快速入门

任务

通过crontab -e指令,设置任务调度文件:/etc/crontab

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

接着输入任务到调度文件

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

意思是所每个小时的每分钟执行ls -l /etc/ > /tmp/to.txt命令

ls -l /etc/的意思是在终端打印/etc目录下的内容

>表示重定向,注意这里是覆盖写,to.txt文件如果不存在会直接自动创建一个

*/1表示每隔1min执行一次

第二个*表示0-23h的每个小时都执行

第三个*表示1-31的每一天

第四个*表示1-12的每个月

第五个*表示0-7的每一天

步骤

登录root,输入crontab -e命令

回车,进入以下界面输入*/1 * * * * ls -l /etc/ > /tmp/to.txt,要注意指令里面的各种空格

esc键后:wq回到会话界面,会显示crontab: installing new crontab

cd到/tmp目录下查看to.txt是否已经生成,如下图所示,已经生成

也可以用ll查看to.txt是否已经生成,如下图所示

查看to.txt文件的内容,可以用cat to.txt也可以用more to.txt查看文件内容

可见显示的是/etc目录下的文件

如果将to.txt文件删掉,一分钟后会自动生成to.txt文件

参数细节说明

5个占位符说明

第一个*  一小时中的第几分钟 0-59

第二个*  一天中的第几小时     0-23

第三个*  一个月中的第几天     1-31

第四个*  一年中的第几个月     1-12

第五个*  一周中的星期几         0-7(0和7都代表星期日)

特殊符号说明 */1 * * * * 指令

*   代表任何时间。比如第一个* 代表一小时中每分钟都执行一次的意思

,     代表不连续的时间。比如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 命令     每周一到周五凌晨4点40分执行命令

*/10 4 *** 命令       每天的凌晨4点,每隔10分钟执行一次命令

0 0 1,15 * 1 命令   每月1号15号,每周1的0点0分都会执行命令  注意:星期几和几号最好不要同时出现,因为都是对天的定义,很容易让管理员混乱

5 实用案例

案例一:每隔1分钟,就讲当前的日期信息追加到/tmp/mydate文件中

*/1 * * * * date >> /tmp/mydate

注意 >> 表示追加,是将内容追加到文件的末尾,> 表示覆盖

案例二:每隔1分钟,将当前日期和日历都追加到/tmp/mycal文件中

如下图所示,这次使用shell脚本

 步骤

首先在/home下vim一个sh文件

回车后,写下指令如下

保存退出,查看权限

需要给root一个执行权限,chmod u+x my.sh

执行my.sh文件

发现会创建mycal文件,打开mycal文件

发现日期和日历都已经追加成功,再次执行查看

现在只要实现定时调动即可

输入crontab -e

回车,在输入界面按下i进入编辑模式,写下以下指令,之前写的指令不用管,

esc,:wq,然后cat一下mycal看看是不是每分钟追加日期和日历信息

案例三:每天凌晨2点将mysql数据库testdb备份到文件中----暂时没有数据库,先不演示

提示:指令为mysqldump -u 用户名 -p 密码 数据库 > /home/db.bak

步骤1:crontab -e

步骤2:0 2 * * * mysqldump -u root -p 密码 testdb > /home/db.bak

6 crond相关指令

crontab -r   终止任务调度

crontab -l   列出当前有哪些调度

先删除再查看会显示no crontab for root

service crontab restart 重启任务调度

二 at定时任务

1 基本介绍

crond是周而复始的执行,at是一次性定时执行

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

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

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

(4)在使用at命令的时候,一定要保证atd进程的启动,可以使用相关指令来查看

ps -ef          查看所有当前正在运行的进程

ps -ef | grep atd   可以查看atd进程是否在运行

说明atd正在运行

2 at命令格式

at 选项 时间    在job队列中添加一个作业

ctrl + d 结束at命令的输入,输出两次

3 at命令选项

-m                    当指定的任务被完成后,将给用户发送邮件,即使没有标准输出

-l                       atq的别名

-d                      atrm的别名

-v                      显示任务将被执行的时间

-c                      打印任务的内容到标准输出

-v                      显示版本信息

-q<队列>           使用指定的队列

-f<文件>            从指定文件读入任务而不是从标准输入读入

-t<时间参数>     以时间参数的形式提交要运行的任务

4 at时间定义

at指定时间的方法

(1)接受在当天的hh:mm(小时:分钟)式的时间指定。假如改时间已经过去,那么就放在第二天执行。例如:04:00 表示今天的凌晨4点,如果过了这个时间就明天凌晨4点再执行

(2)使用midnight(深夜),noon(中午),teatime(下午四点)等比较模糊的词语来指定时间

(3)采用12小时计时时制,即在时间后面加上 AM或PM来说明是上午还是下午。例如:12pm

(4)指定命令执行的具体日期,指定格式为month day月日 或mm/dd/yy 月日年 或 dd.mm.yy 日月年,指定的日期必须跟在指定时间的后面 例如:04:00 2022-08-26

(5)使用相对计时法。指定格式为:now+count time-units

now 就是当前时间,time-units是时间单位,可以是minutes hours days weeks

count是实践的数量,几天 几小时  例如now+5 minutes   表示五分钟之后执行这个任务

(6)直接使用today今天,tomorrow明天来指定完成命令的时间

5 应用实例

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

输入两次CTRL+D之后输出的job 1 at ……中的1代表这是job队列中的第一个job

进入at> 之后如果输入的指令输错了,按backspace删除不掉,要按下CTRL+backspace才可以删除

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

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

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

2min之后查看root下是否新建了date200.log文件,发现新建成功如下图所示

使用cat查看是否完成指令执行,如下图所示日期追加成功

案例5:删除已经设置的任务

atrm 编号

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

案例6:2min之后执行一个sh脚本

前提是必须先有.sh文件才行

Linux12 crontab 定时任务 at 一次性任务相关推荐

  1. php定时任务为什么不好写,php解决crontab定时任务不能写入文件问题的方法分析...

    本文实例讲述了php解决crontab定时任务不能写入文件问题的方法.分享给大家供大家参考,具体如下: 今天使用crontab写的定时任务没有执行,很纳闷. crontab.php error_rep ...

  2. linux crontab 定时任务 计划任务 不执行 原因

    前言 最近在工作中遇到了一些问题,crontab定时任务居然不执行,后来我在网上找的时候发现网上主要说了这几个原因: 1 crond服务未启动 crontab不是Linux内核的功能,而是依赖一个cr ...

  3. 【Linux】crontab 定时任务 遇到几个问题

    文章目录 cron 与 crontab 区别 bash xxx.sh 可以执行,但是crontab定时任务不执行,也没有报错信息,无日志: 首先区分 crontab -e 和 /etc/crontab ...

  4. CentOS crontab定时任务不执行的解决

    crontab 配置文件 SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # .- minute (0 59 ...

  5. python定时任务crontab_【Python】Linux crontab定时任务配置方法(详解)

    CRONTAB概念/介绍 crontab命令用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于"crontab"文件中,以供之后读取和执行. cron 系统调度 ...

  6. crontab定时任务不生效问题解决

    导致crontab定时任务不生效问题可能的原因非常多 首先,排查一些可能会导致问题出现的简单原因. 1.Linux的时间与互联网时间不一致 2.定时执行的.sh文件无执行权限 3.crontab进程未 ...

  7. linux怎么查看定时任务有没有运行,怎么看crontab定时任务是否执行

    定时执行操作命令,每一个用户拥有自己的crontab,那么大家知道怎么看crontab定时任务是否执行呢?接下来大家跟着学习啦小编一起来了解一下的看crontab定时任务是否执行解决方法吧. 看cro ...

  8. java定时任务增删改查_python实现crontab定时任务的增删改查

    python实现crontab定时任务的增删改查 python实现crontab定时任务的增删改查 本人主要业务方向是后台,在开发不同版本迭代或者项目的部署时,每次都手动去创建cron定时任务,很不符 ...

  9. Linux crontab 定时任务命令详解

    Linux Crontab 定时任务 命令详解 [日期:2016-02-13] 来源:Linux社区 在工作中需要数据库在每天零点自动备份所以需要建立一个定时任务.我选择在Linux下使用Cronta ...

最新文章

  1. Spring MVC拦截器
  2. C++函数的默认参数
  3. cannot read prpperty ‘start‘ of undefined(问题记录)
  4. OpenAtom Pika 来了!
  5. SpringBoot解决跨域的5种方式
  6. JS实现文字转语音播放
  7. 怎么提高企业微信加人的通过率,让企业微信加更多客户?快速加人,引流拓客有什么技巧(企微运营干货)
  8. linux光盘属于什么设备,Linux系统中,光盘的设备文件为
  9. mysql下载速度慢怎么办
  10. 计算机的操作系统的功能有哪些,操作系统的主要功能是主要有哪些类型
  11. 开源OceanBase如何与Prometheus与Grafana监控结合
  12. 掌握“盘带技术”——比较磁盘存储和磁带存储
  13. 三位整数拆分python_343整数拆分
  14. 解决无公网IP,远程访问黑群晖NAS
  15. python的split()函数!
  16. 游戏数据分析报告--<野蛮时代>
  17. 1124: 成语接龙
  18. MSP430 LIN总线编程
  19. 模糊字符串匹配:双音素算法
  20. Nginx:正向代理与反向代理

热门文章

  1. 通过TCP调试Modbus RTU
  2. Few-Shot Representation Learning for Out-Of-Vocabulary Words 论文笔记
  3. 进入游戏行业有必要了解的东西游戏行业知识,游戏产业链介绍
  4. python调用windows cmd命令输出乱码
  5. 蓝松绿幕抠图使用说明
  6. MES系统软硬件常规故障处理方法
  7. 大疆地图规划航线飞行
  8. html实现图片淡化效果,图片由模糊变清晰的淡入效果 js+css实现【原创】
  9. .NET都实现平台统一了你还不会WPF界面设计?
  10. 六段极富历史意义的代码