网络安全快速入门(十七)计划任务

17.1 前言

在上一章节我们简单了解了Linux软件管理的一些相关操作,而在这张内容,我们来讲一下计划任务!计划任务,本质上来说就是特定的时间执行一些命令,因此被称为计划任务,我们接下来就具体来了解一下吧:

17.2 计划任务详解

作用:

        定时自动完成特定的工作
计划任务分类有两种,一次性计划任务和周期性重复计划任务,具体分类如下:
计划任务的分类:
  • 一次性的计划任务
        例如下周三对系统的重要文件备份一次
  • 周期性重复计划任务
        例如每天晚上12 00 备份一次

17.2.1 一次性计划任务:

命令有两个
  • at
  • batch
因为篇幅原因,这里我们就只讲at,batch在这里不做讲解,还请各位谅解。
at命令:
        at命令是一次性定时计划任务,at的守护进程atd回忆后台模式运行,检查作业队列来运行,
        默认情况下,atd守护进程会每隔一分钟会检查at作业队列,如果在当前时间有作业时,会检查作业运行时间,如果时间与当前时间匹配,那么运行此作业。
        at命令是一次性定时计划任务,执行完一个任务后就不会再执行此任务了
因此,在使用at命令的时候,必须保证atd进程启动,否则不会运行计划任务!!!
检查atd命令是否启动:
ps -ef | grep atd
我们看结果:
我们发现,这里我们并没有启动atd进程,因此我们需要手动启动atd进程,手动启动atd进程如下:
atd

我们现在再来查看atd进程

启动成功。

注意:这里新系统可能没有at命令,因此需要安装at命令,保证可以使用一次性计划任务

在启动atd命令后,我们就可以正常使用at命令了

at命令格式:

at [选项][时间]
ctrl+d保存退出

具体选项如下:

选项:
  • -q:指定任务计划的队列编号
  • -l:显示尚未执行的计划任务(等同于命令atq
  • -d num:删除指定编号的计划任务(等同于命名atrm
  • -c num:显示指定编号的计划任务的具体的命令
  • -f file time:从文件中读取要执行的操作

这里我们直接通过例子来进行讲解:

-l选项举例

我们这里先创建一个一次性计划任务。在十分钟后分别执行查看根目录以及查看etc下的passwd命令,

命令格式如下:

at now+10min
at> ls /
at> cat /etc/passwd

输入完成后看结果

这里代表已经有一个计划任务将于2024年6月12日5:03进行执行,我们来查看该任务

命令:

at -l

看执行结果:

输出结果详解
1	   Wed Jun 12 05:03:00 2024         a          root
编号     计划任务的执行时间         队列编号 发起计划任务的用户

现在我们等结果就可以了

现在他们告诉我们root里面有个文件,我们进去看一下

好了,这里就说明执行成功了,下一个。

-f的举例:
该选项类似于一些编程语言的函数也有,通过指定时间去调用指定文件文件里面的命令,具体操作如下:
  • 创建文件
  • 读取命令
我们通过举例来讲解该选项:
例:
        在一分钟后利用1.txt中的命令去执行查看根目录的命令
第一步:在根目录下创建文件1.txt,文件内容为ls /(这里不做演示,只看结果)
第二步:读取1.txt中的命令,在一分钟后执行
命令如下:
at -f 1.txt now+1min

我们来看反馈:

接下来我们等待一分钟之后的结果:
邮件发送,我们来查看邮件
执行成功,
ok,完成
(这里需要注意, 所有的查看命令的反馈结果都存放于用户的邮件下,邮件地址为/var/spopol/mail下的用户同名的一般文件中,因此需要查看邮件!!)

 17.2.2 周期性任务计划

周期性任务计划也有两个命令:
  • crontab
  • anacron

这里我们只对crontab命令做解释,还请各位读者谅解

crontab命令:
作用:实现周期重复的计划任务
这里我们需要注意的是,我们需要去启动一个服务,crond服务,只有在启动该服务之后才可以完整使用该命令。
启动crontab的服务:
service crond start   启动自动消失
chkconfig crond on 自动启动

这里需要注意:我们或许需要安装crontab以及crond才可以正查使用该任务计划!!

接下来我们来介绍一下crontab命令

这个命令如果你是yun安装的,他会在/etc下有一个名为crontab的介绍文件,具体如下:

这里会介绍该命令的格式,各个符号的作用以及其他用途,前面五个*分别表示

  • 分钟
  • 小时

之后直接跟命令,具体如下:

* * * * * 命令

(这里我们要注意,crontab后面必须加短选项e才可以进行执行!!!

crontab的时间表示格式:
  • 分钟:0-59任意数字
  • 小时:0-23任意数字
  • 天:1-31任意数字
  • 月:1-12任意数字
  • 周:0-7任意数字
  • *:表示任何时间,例如:每天的730就是: 30 7 * * *
  • /n:表示每个n单位的时间,例如:每隔10分钟:*/10 * * * *
  • -:表示一个连续的范围,例如每天的73083093030 07-09 * * *
  • 表示离散的时间点,例如每天的7301030143030 07,10,14 * * *

crontab选项:

  • -e:执行、修改任务计划(本质上就是用vi修改/var/spool/cron/username
  • -l:显示用户的计划任务列表
  • -u username:查看指定用户的计划任务(结合-l使用)
  • -r:删除当前用户的全部计划任务
多于话不说,举例说明
例子:
利用周期性计划任务,每分钟创建一个以完整 年月日 .log” 命名的文件
第一步:
进入周期性计划任务编辑系统
touch -e

第二步:

编辑该文件:

*/1 * * * * touch /`date \+\%F`

第三步:

查看是否写入

crontab -l

看结果:

第四步:

去根下查看是否执行成功

ok,完成!

这里我们要注意哦的是,在执行命令是如果出错,他是不会进行反馈的,因此建议先运行一遍再去执行该命令!

/etc/con.deny
黑名单文件(文件中出现的用户不能创建计划任务)
最后我们出一些理解题,让大家自行理解!
30 3,12 * * *
30 */6 * * *
30 8-12/2 * * *
45 4 1,10,22 * *
30 21 * * *
0,30 18-23 */7 1-6 *
  • 每个月十二号的三点三十分执行该命令
  • 每隔六天的一整天的半点执行命令
  • 每个月的二号的八点到十二点的半点执行该命令
  • 每个月的一号,十号,二十二号的四点四十五分执行该命令
  • 每个天的晚九点半执行该命令
  • 一到六月内,每隔七天的十八时到二十三时的整点和半点执行该命令

大家可以去选中查看答案,今天的内容就到这里了,感谢各位观看!如果有不足和错误之处还请各位读者联系指正!再次感谢各位的观看!我们下期再见!

  • 7
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值