定时任务1

目录

一.单一执行的例行性任务--at (一 次性)

1.1安装

1.2参数

1.3示例2 

1.4时间格式

1.5注意

1.6at命令执行过程分析

二.循环执行的例行性任务--crontab (周期性)

2.1.crontd服务

2.2.crontab工作过程

2.3.crontab命令详解

2.3.1格式

2.3.2.参数

2.3.3.编辑crontab

2.3.4.特殊字符

2.3.5.时间描述示例


一.单一执行的例行性任务--at (一 次性)
 

1.1安装


●at命令- -般会默认安装在系统中,通过下列命令查看版本号

[root@server ~]# at -V2 

at version 3.1.23

●查看执行的状态

[ root@server ~]# systemct1 status atd #查看状态

 [root@server ~]# systemct1 enable --now atd #开机启动并当前立刻启动
 

1.2参数


-1: 列出系统中所有用户的at任务
atq: 等价于at -1

-d :删除或取消一个任务
-v :使用时间格式累出at任务
-C :可以列出任务后的命令内容
-f:从文件中读取


1.3示例2 


●不使用交互命令实现at任务
1 | [root@server ~]# echo "echo 'he1lo again' >> at.txt"| at now +1
mi nute^C
2 [ root@server ~]# cat at. txt
 

1.4时间格式


参数                                             说明
HH:MM                                      在今天HH小时的MM分钟执行,若时间错过则在明天执行
HH:MM YYYY-MM-DD              规定在某年某月某日的特殊时间执行
                                                  now + 2 mintues

                                                  now + 3 hours 

now +数字时间单词
                                                 now +4 days

                                                 now +5 weeks
 

1.5注意


●at命令只要指定的时间正确,就可以执行对应的命令
●at命令的输出结果不会显示到屏幕.上
●at命令中执行的命令最好使用绝对路径,不容易报错
●过程:输入at时间->回车->输入执行的命令->ctrl+d退出at
at命令只会执行一次.


1.6at命令执行过程分析


●第一步:寻找/etc/at.allow (白名单)是否存在,写在该文件中用户才可执行at命令
第二步:若/etc/at.allow不存在,则寻找/etc/at.deny(黑名单)文件,写在该文件中的用户不能使
用at命令
●第三步:若两个文件都不存在则只有root用户可以使用at命令
●注意:若拒绝某用户使用at命令则可以将用户名写入到/etc/at.deny中
 

二.循环执行的例行性任务--crontab (周期性)


2.1.crontd服务


●at命令是在指定的时间只能执行一-次任务,crontab命令可以循环重复的执行定时任务,与
Windows中的计划任务有些类似
●crond是Linux下用来周期地执行某种任务或等待处理某些事件的一一个守护进程,在安装完成操
作系统后,默认会安装crond服务工具,且crond服务默认就是自启动的,若需要安装则执行
如下命令:
 [root@server ~]# yum install
crontabs # 安装
[ root@server ~]# systemct status crond
#查看状态
crond进程每分钟会定期检查是否有要执行的任务,如果有,则会自动执行该任务,crontab
命令需要crond服务支持
●linux任务调度的工作主要分为以下两类:
。系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
。个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,
这些工作可由每个用户自行设置
 

2.2.crontab工作过程


●当系统中有/etc/cron.allow文件时,只有写入此文件的用户可以使用crontab命令,没有写
入的用户不能使用crontab命令。同样,如果有此文件, /etc/cron.deny 文件会被忽略,因为
/etc/cron.allow文件的优先级更高
当系统中只有/etc/cron.deny文件时,写入此文件的用户不能使用crontab命令,没有写入文
件的用户可以使用crontab命令
●crontab执行的每- -项工作都会被记录到lvar/log/cron这个日志文件中
●当用户使用crontab新建工作之后,该项工作就会被记录到/var/spool/cron/目录里面
 

2.3.crontab命令详解


2.3.1格式


crontab [-u user] [-1| -r | -e]


2.3.2.参数


参数                                                说明
-U                                            只有root才能执行该任务
-e                                            编辑crontab工作内容
-|                                             查询crontab任务内容
-r                                             删除cronatb任务
 

2.3.3.编辑crontab


●格式
1 crontab -e .
●注意:写入的命令一行- -个命令,每行共6段:时间命令
●时间共5段,意义如下:
 

●注意:写入的命令- -行一 个命令,每行共6段:时间命令
●时间共5段.意义如下:

表示意义             分钟            小时           日期              月份                 星期
数字范围            0-59            0-23            1-31              1-12            0-7 (0和7都表示星期日)
I
 

2.3.4.特殊字符


*                                         任意时刻
-                                         表示范围

(逗号)                                分割时段
4*/数字                              指定时间间隔频率,如:每3分钟执行一-次:*/3
 

2.3.5.时间描述示例


12* * *                                                 每天凌晨2点1分执行动作
017**1:                                               每周一下午17点整执行动作
 0 5 1,15 * *                                        每月1日和15日凌晨5点执行动作
404**1-5                                            每周一至周五凌晨4点40分执行动作
*/104 ***                                  每天凌晨4点每隔10分钟执行动作
3,15 8-11 */2 * * :                               每隔2天上午8-11点的第3分钟和第15分钟执行动作
*****                                                   每隔1分钟执行动作
 

你可能感兴趣的:(1024程序员节)