Linux 计划任务
2021/11/4 7:11:56
本文主要是介绍Linux 计划任务,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
计划任务类型
计划任务包括两种类型:
-
周期性计划任务(crontab 命令) :每到指定时间点就执行指定的任务,周期性重复执行
-
一次性计划任务 (at 命令):未来某个时间执行一次指定任务
crontab 定时器
定时器
crontab 命令允许用户提交、编辑或删除相应的作业。每一个用户都可以有一个 crontab 文件来保存调度信息。可以使用它运行任意一个 shell 脚本或某个命令。
crontab 命令格式
作用:用于生成 cron 进程所需要的 crontab 文件
-
-e 编辑定时任务
-
-l 查看定时任务
-
-r 删除定时任务
-
-i 删除定时任务给予提示
# crontab -e * * * * * /root/shell/if.sh
crontab 文件格式
minute | hour | day-of-month | month-of-year | day-of-week | commands |
---|---|---|---|---|---|
分钟 | 小时 | 天 | 月 | 周 | 命令或脚本 |
-
minute 一小时中的哪一分钟 [0~59]
-
hour 一天中的哪个小时 [0~23]
-
day-of-month 一月中的哪一天 [1~31]
-
month-of-year 一年中的哪一月 [1~12]
-
day-of-week 一周中的哪一天 [0~6] 0表示星期天
-
commands 执行的命令或脚本
书写注意事项
-
全都不能为空,必须填入,不知道的值使用通配符 * 表示任何时间
-
每个时间字段都可以指定多个值,不连续的值用逗号,间隔,连续的值用间隔符-间隔
-
命令应该给出绝对路径
-
用户必须具有运行所对应的命令或程序的权限
注:whereis 命令:可以查看命令所在的文件路径
at 定时任务
安装 at 命令
at 定时任务是指定一个时间执行一个任务,只能执行一次,需要安装 at 命令;
[root@node-01 ~]# yum -y install at
at 命令格式
at [option] TIME option: -q QUEUE -l :列出指定队列中等待运行的作业(相当于 atq) -d :删除指定的作业(相当于 atrm) -c :查看具体作业任务 -f :从指定文件中读取任务 TIME: HH:MM [YYYY-mm-dd] noon,midnight,teatime tomorrow now+#{minutes,hours,days, OR weeks}
启动 at 服务
[root@node-01 ~]# systemctl start atd [root@node-01 ~]# systemctl enable atd
at 创建任务
使用 at 命令创建的所有任务,都会以文件的格式保存在 /var/spool/at/ 目录下面
-
方式一:通过 CLI 来配置计划任务
-
直接使用 at 命令指定好时间后,会进入一个 CLI 界面,手动输入指定时间要执行的操作(可以一直回车指定多项操作),最后使用 Ctrl+D 提交并退出
[root@node-01 ~]# at 21:25 at> echo "hello,world" at> <EOT> job 1 at Tue Mar 9 21:25:00 2021
-
使用
at -l
或者atq
命令查看刚才创建的任务
[root@node-01 ~]# at -l Tue Mar 9 21:27:00 2021 a root [root@node-01 ~]# atq Tue Mar 9 21:27:00 2021 a root
-
查看任务执行结果
at 计划任务的执行结果都会邮件通知对应的用户,所以直接查看 /var/spool/mail/ 目录下对应用户文件的邮件内容或者使用 mail 命令指定编号查看
[root@node-01]# cat /var/spool/mail/root From root@node-01.localdomain Tue Mar 9 21:25:01 2021 Return-Path: <root@node-01.localdomain> X-Original-To: root Delivered-To: root@node-01.localdomain Received: by node-01.localdomain (Postfix, from userid 0) id EC49F200F3D3; Tue, 9 Mar 2021 21:25:00 +0800 (CST) Subject: Output from your job 1 To: root@node-01.localdomain Message-Id: <20210309132500.EC49F200F3D3@node-01.localdomain> Date: Tue, 9 Mar 2021 21:25:00 +0800 (CST) From: root@node-01.localdomain (root) hello,world # 定时任务执行结果
-
-
方式二:通过读取文件中任务列表来创建计划任务
-
使用
at -f
命令从指定文件中读取内容创建任务
[root@node-01 ~]# echo "您好呀" >> at.txt [root@node-01 ~]# at -f at.txt 21:38 job 3 at Tue Mar 9 21:38:00 2021
-
使用
at -d
命令删除指定编号任务
[root@node-01 spool]# atq Tue Mar 9 21:38:00 2021 a root [root@node-01 spool]# at -d 3 [root@node-01 spool]# atq
-
-
方式三:通过 echo 显示出要执行的内容来创建计划任务
[root@node-01 spool]# echo "hello,wolrd" | at 21:40 job 4 at Tue Mar 9 21:40:00 2021
at 常用时间格式
-
指定具体年月日时间来执行
[root@node-01 ~]# at -f test.txt 20:20 2018-09-05
-
指定 10 分钟之后执行
[root@node-01 ~]# at -f test.txt now+10minutes
-
指定 1 小时之后执行
[root@node-01 ~]# at -f test.txt now+1hours
-
指定 10 天之后执行
[root@node-01 ~]# at -f test.txt now+10day
这篇关于Linux 计划任务的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法