第十五章、【Linux】例行性工作调度

简介: 第十五章、【Linux】例行性工作调度

15.1 什么是例行性工作调度

在不考虑硬件与服务器的链接状态下,Linux可以帮助提醒许多任务。Linux调度就是通过crontab与at这两个东西。


15.1.1 Linux工作调度的种类:at,cron

从上面的说明当中,我们可以很清楚的发现两种工作调度的方式:

一种是例行性的,就是每隔一定的周期要来办的事项;

一种是突发性的,就是这次做完以后就没有的那一种 ( 3C 大降价...)


在Linux下面如何达到这两个功能,就得用at和crontab这两个东西。

at:at 是个可以处理仅执行一次就结束调度的指令,不过要执行 at 时, 必须要有 atd 这个服务的支持才行。在某些新版的 distributions 中,atd 可能默认并没有启动,那么 at 这个指令就会失效呢!不过我们的 CentOS 默认是启动的。

crontab :crontab 这个指令所设置的工作将会循环的一直进行下去! 可循环的时间为分钟、小时、每周、每月或每年等。crontab 除了可以使用指令执行外,亦可编辑/etc/crontab 来支持。 至于让 crontab 可以生效的服务则是 crond 这个服务。


15.1.2 CentOS Linux 系统上常见的例行性工作

Linux会主动帮我们进行一些工作。 比方说自动的进行线上更新 (on-line update)、自动的进行 updatedb (第六章谈到的locate 指令) 更新文件名数据库、自动的作登录文件分析 (所以 root 常常会收到标题为logwatch 的信件) 等等。这是由于系统要正常运行的话, 某些在背景下面的工作必须要定时进行的缘故。基本上 Linux 系统常见的例行性任务有:


进行登录文件的轮替 (log rotate): Linux 会主动的将系统所发生的各种信息都记录下来,这就是登录文件 。 由于系统会一直记录登录信息,所以登录文件将会越来越大!我们知道大型文件不但占容量还会造成读写性能的困扰, 因此适时的将登录文件数据挪一挪,让旧的数据与新的数据分别存放,则比较可以有效的记录登录信息。这就是 log rotate 的任务!这也是系统必要的例行任务;


登录文件分析 logwatch 的任务: 如果系统发生了软件问题、硬件错误、资安问题等,绝大部分的错误信息都会被记录到登录文件中, 因此系统管理员的重要任务之一就是分析登录文件。但你不可能手动通过 vim 等软件去检视登录文件,因为数据太复杂了! 我们的 CentOS 提供了一只程序“ logwatch ”来主动分析登录信息,所以你会发现,你的 root老是会收到标题为 logwatch 的信件,那是正常的。


创建 locate 的数据库: 在第六章我们谈到的 locate 指令时, 我们知道该指令是通过已经存在的文件名数据库来进行系统上文件名的查询。我们的文件名数据库是放置到/var/lib/mlocate/ 中。 问题是,这个数据库怎么会自动更新,这就是系统的例行性工作所产生的效果。系统会主动的进行 updatedb。


man page 查询数据库的创建: 与 locate 数据库类似的,可提供快速查询的 man pagedb 也是个数据库,但如果要使用 man page 数据库时,就得要执行 mandb 才能够创建好。 而这个 man page 数据库也是通过系统的例行性工作调度来自动执行的。


RPM 软件登录文件的创建: RPM是一种软件管理的机制。由于系统可能会常常变更软件, 包括软件的新安装、非经常性更新等,都会造成软件文件名的差异。为了方便未来追踪,系统也帮我们将文件名作个排序的记录。 有时候系统也会通过调度来帮忙 RPM 数据库的重新创建。


移除暂存盘: 某些软件在运行中会产生一些暂存盘,但是当这个软件关闭时,这些暂存盘可能并不会主动的被移除。 有些暂存盘则有时间性,如果超过一段时间后,这个暂存盘就没有效用了,此时移除这些暂存盘就是一件重要的工作! 否则磁盘容量会被耗光。系统通过例行性工作调度执行名为 tmpwatch 的指令来删除这些暂存盘。


与网络服务有关的分析行为: 如果你有安装类似 WWW 服务器软件 (一个名为 apache的软件),那么你的 Linux 系统通常就会主动的分析该软件的登录文件。 同时某些凭证与认证的网络信息是否过期的问题,我们的 Linux 系统也会很友好的帮你进行自动检查。


相关文章
|
1月前
|
人工智能 算法 大数据
Linux内核中的调度算法演变:从O(1)到CFS的优化之旅###
本文深入探讨了Linux操作系统内核中进程调度算法的发展历程,聚焦于O(1)调度器向完全公平调度器(CFS)的转变。不同于传统摘要对研究背景、方法、结果和结论的概述,本文创新性地采用“技术演进时间线”的形式,简明扼要地勾勒出这一转变背后的关键技术里程碑,旨在为读者提供一个清晰的历史脉络,引领其深入了解Linux调度机制的革新之路。 ###
|
1月前
|
算法 Linux 定位技术
Linux内核中的进程调度算法解析####
【10月更文挑战第29天】 本文深入剖析了Linux操作系统的心脏——内核中至关重要的组成部分之一,即进程调度机制。不同于传统的摘要概述,我们将通过一段引人入胜的故事线来揭开进程调度算法的神秘面纱,展现其背后的精妙设计与复杂逻辑,让读者仿佛跟随一位虚拟的“进程侦探”,一步步探索Linux如何高效、公平地管理众多进程,确保系统资源的最优分配与利用。 ####
70 4
|
1月前
|
缓存 负载均衡 算法
Linux内核中的进程调度算法解析####
本文深入探讨了Linux操作系统核心组件之一——进程调度器,着重分析了其采用的CFS(完全公平调度器)算法。不同于传统摘要对研究背景、方法、结果和结论的概述,本文摘要将直接揭示CFS算法的核心优势及其在现代多核处理器环境下如何实现高效、公平的资源分配,同时简要提及该算法如何优化系统响应时间和吞吐量,为读者快速构建对Linux进程调度机制的认知框架。 ####
|
22天前
|
缓存 算法 Linux
Linux内核中的调度策略优化分析####
本文深入探讨了Linux操作系统内核中调度策略的工作原理,分析了不同调度算法(如CFS、实时调度)在多核处理器环境下的性能表现,并提出了针对高并发场景下调度策略的优化建议。通过对比测试数据,展示了调度策略调整对于系统响应时间及吞吐量的影响,为系统管理员和开发者提供了性能调优的参考方向。 ####
|
4月前
|
资源调度 监控 网络协议
在Linux中,如何进行系统资源调度?
在Linux中,如何进行系统资源调度?
|
4月前
|
监控 Linux 调度
在Linux中,如何进行调度任务?什么是 crontab 并解释 crontab 中的字段?
在Linux中,如何进行调度任务?什么是 crontab 并解释 crontab 中的字段?
|
4月前
|
存储 Linux API
Linux源码阅读笔记08-进程调度API系统调用案例分析
Linux源码阅读笔记08-进程调度API系统调用案例分析
|
4月前
|
负载均衡 算法 Linux
在Linux中,LVS的负载调度算法是什么?
在Linux中,LVS的负载调度算法是什么?
|
4月前
|
资源调度 监控 Linux
在Linux中,如何进行网络资源调度?
在Linux中,如何进行网络资源调度?
|
4月前
|
监控 Ubuntu Linux