[轻松学会shell编程]-5、计划任务

1、计划任务

创建和管理在指定时间自动执行的任务

注意事项:要使任务计划在指定时间自动运行,计划任务的服务必须使启动的。

1.1、计划任务的分类 

  • 使用at命令调用atd进程设置在某个特定的时间,执行一次任务
  • 使用crontab命令调用crond进程,设置按固定的周期(如每天,每周等)重复执行预先计划好的任务

crond进行是一直在运行的

[root@fttswlp ~]# ps aux|grep crond
root        693  0.0  0.0 126384  1624 ?        Ss   13:16   0:00 /usr/sbin/crond -n

1.2、守护进程(Daemon)

定义:一直在内存里运行的进程,直到我们人为的停止它的运行,不然它是一直在内存中运行的。因为一直在内存里运行,所以我们的用户可以随时去访问。

我们若是用"ps aux"命令来查看,会看到很多带末尾带"d"的进程,那么这些进程就是守护进程。

1.2.1、进程的五态

上面的守护状态,是一直在"运行"、"阻塞"、"就绪"这三种状态中循环往复的。

1.3、at命令

定义:在指定的日期、时间点自动执行预先设置的一些命令操作,属于一次性计划任务

  • 系统服务的名称:/etc/init.d/atd
  • 设置格式 :at [HH:MM] [yyyy-mm-dd]

设置任务的时候,首先我们要先启动std进程,不然就不会定时的去执行计划任务。

[root@fttswlp rough_book]# service atd start
Redirecting to /bin/systemctl start atd.service
[root@fttswlp rough_book]# ls
[root@fttswlp rough_book]# at 21:58
at> mkdir fan$RANDOM
at> <EOT>    # 使用ctrl+d,提交计划任务
job 1 at Thu Jun 23 21:58:00 2022    

# 查看当前的计划任务列表
[root@fttswlp rough_book]# at -l
1	Thu Jun 23 21:58:00 2022 a root

# 等到了21:58,你可以看到有一个新建的文件。
[root@fttswlp rough_book]# ls
fan28985



# 删除计划任务编号为2的任务,atrm等价于at -d
[root@fttswlp rough_book]# atrm 2

1.3.1、计划任务的存储地方

存放任务的地方:/var/spool/at

[root@fttswlp rough_book]# at -l
4	Thu Jun 23 22:03:00 2022 a root
[root@fttswlp rough_book]# ls /var/spool/at
a0000401a5240b  spool


# 原理就是atd这个进程到了时间,就会去执行/var/spool/at中对应a开头的文件。。因为linux里面一切接文件。任务一旦执行完毕,文件就会消失。

1.3.2、batch

batch是和at差不多的计划任务命 令。batch会自动在系统负载不高的时候运行。那么什么时候不忙呢?就是平均负载小于0.8

[root@fttswlp rough_book]# top
top - 22:10:28 up  8:54,  5 users,  load average: 0.00, 0.01, 0.05

# 查看系统开机多久了,以及系统的平均负载 
[root@fttswlp rough_book]# uptime
 22:10:51 up  8:54,  5 users,  load average: 0.00, 0.01, 0.05

# load average后面的这三个数字表示:在1、5、15分钟的平均负载

# 这两个命令都可以查看系统的负载

平均负载:是一段时间内(1、5、15分钟)可运行的或不可中断的进程的平均数量。可以理解为就绪队和运行、阻塞里的进程的数量。这个值的多少跟CPU的核有关系。

man uptime:查看uptime手册可以看到以下关于系统平均负载的内容

System  load  averages  is the average number of processes that are either in a runnable or uninter‐ ruptable state.  A process in a runnable state is either using the CPU or waiting to use the CPU.  A process  in uninterruptable state is waiting for some I/O access, eg waiting for disk.  The averages are taken over the three time intervals.  Load averages are not normalized for the number of CPUs in a  system,  so a load average of 1 means a single CPU system is loaded all the time while on a 4 CPUsystem it means it was idle 75% of the time.

系统平均负载是指处于可运行状态或不可中断状态的过程的平均数量。 处于可运行状态的进程正在使用CPU,或者正在等待使用CPU。 处于不可中断状态的进程正在等待一些I/O访问,例如等待磁盘。 取三个时间间隔的平均值。 平均负载不是按照系统中CPU的数量进行规范化的,所以平均负载为1意味着单个CPU系统一直处于加载状态,而CPU数量为4个CPU系统,它意味着75%的时间是空闲的。

2、crond进程

crond进程是每隔1分钟就去检查用户的计划任务;crond默认安装的且开机会自动运行。详细的可以查看下面这个博客。

[linux]三、计划任务(crontab、黑客怎么用计划任务获取我们的东西以及怎么排查、前台和后台、anacron服务)_FanMY_71的博客-CSDN博客

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FanMY_71

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值