Linux 定时任务调度

一.crond 任务调度

1.概述

任务调度是指系统在某个时间执行的特定的命令或程序。有一些是系统工作,比如说是病毒扫描;有一些是个别用户工作,比如说文件备份。

2.基础语法

复制代码
crontab [选项]

选项:

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

在进入编辑模式会出现这种错误:No string under cursor,这是因为没有进入插入模式,按一下i 就行了。在编辑完后,按一下Esc 键 ,再按一下 :键进入底行模式,在输入 wq即可保存退出了。

3.时间规则

定时任务的具体操作:

复制代码
* * * * * 命令

前面的五个 * ,含义如下:

|-------|-------------|---------------|
| | 含义 | 范围 |
| 第一个* | 某个小时中的第几分钟 | 0-59 |
| 第二个* | 某一天当中的第几个小时 | 0-23 |
| 第三个* | 某一个月的第几天 | 1-31 |
| 第四个* | 某一年中的第几个月 | 1-12 |
| 第五个* | 一周中的星期几 | 0-7(0和7都是星期天) |

举个例子:

复制代码
10 10 3 3 * ls -l /etc/ > /tmp/to.txt

意思就是每一年3月3日的10点10分都会执行 ls -l /etc/ > /tmp/to.txt 这个指令。

下面是一些特殊符号的含义:

|------|--------------|
| * | 代表任意时间 |
| , | 代表不连续的时间 |
| - | 代表连续的时间范围 |
| */n | 代表每隔多久执行一次命令 |

举个几个例子:

1)下面这个表示在每一年3月3日,3月4日的10点10分都会执行 ls -l /etc/ > /tmp/to.txt 这个指令

复制代码
10 10 3,4 3 * ls -l /etc/ > /tmp/to.txt

2)下面表示每一年3月3日到3月7日的10点10分都会执行 ls -l /etc/ > /tmp/to.txt 这个指令

复制代码
10 10 3-7 3 * ls -l /etc/ > /tmp/to.txt

二.at 定时任务

1.概述

at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行。默认情况下atd守护进程每60秒检查作业队列,有作业时会检查作业的运行时间,如果时间与当前的时间匹配则会运行该作业。

注:在使用at命令的时候,一定要保证atd进程的启动,可以使用相关指令 ps -ef来查看。

2.基本语法

复制代码
at [选项] [时间]

//查看任务
atq

//删除任务
atrm 编号

选项:

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

3.时间规则

1)可以在当天的hh:mm(小时:分钟)的时间指定;如果这个时间已经过去了,那么就在第二天执行;

2)可以使用midnight,noon,teatime 等词语来指定时间;也可以使用today,tomorrow来指定时间;

3)可以采用12小时制 ,在时间的后面加上ampm来区分上下午;

4)可以指定具体时间,格式为month daymm/dd/dd.mm.yy,指定日期必须跟在指定时间的后面;

5)可以使用相对计时法,格式为:now + 数字 单位 ,这个单位可以是 minutes,hours,days,weeks

相关推荐
hgdlip1 小时前
固定ip和非固定ip的区别是什么?如何固定ip地址
服务器·网络·tcp/ip
IT葛大侠1 小时前
OSPF域间路由
运维·网络·计算机网络
搬码临时工1 小时前
有公网ip但外网访问不到怎么办?内网IP端口映射公网连接常见问题和原因
运维·服务器·网络·网络协议·tcp/ip·php·远程工作
huangyuchi.1 小时前
【Linux】编译器gcc/g++及其库的详细介绍
linux·运维·服务器·笔记·编译器·gcc·g++
我是苏苏1 小时前
C#基础:使用线程池执行并行任务
java·服务器·c#
liuyunluoxiao3 小时前
内存管理【Linux操作系统】
linux
独行soc3 小时前
2025年渗透测试面试题总结-腾讯[实习]安全研究员(题目+回答)
linux·安全·web安全·面试·职场和发展·渗透测试
egoist20233 小时前
【Linux仓库】冯诺依曼体系结构与操作系统【进程·壹】
linux·运维·服务器·开发语言·操作系统·冯诺依曼体系结构
白总Server4 小时前
Golang 依赖注入:构建松耦合架构的关键技术
linux·运维·服务器·macos·架构·golang·xcode
机械心4 小时前
Docker容器使用手册
运维·docker·容器