Linux系统中有一种例行性工作(crontab)可以调度,是通过crontab和at来实现的。

这两种工作调度:

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

一种是突发性的,就是这次做完以后就没有的那种。

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

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

Linux上常见的例行性工作

  1. 进行日志文件的轮替(log rotate)

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

  1. 日志文件分析logwatch的任务

如果系统发生了软件问题、硬件错误等,绝大多部分的错误信息都会被记录到日志文件中,因为此系统管理员的重要任务之一就是分析日志文件,但你不可能动手通过vi的软件去检查日志文件,因为数据太复杂了,我们的CentOS提供一个程序“logwatch”来主动分析日志信息,所有你会发现,你的root老是收不到标题为logwatch的信件,那是正常的。你最好能看看该信件的内容。

  1. 新建locate的数据库

Locate这个命令是通过已经存在的文件名数据库来进行系统中文件名的查询。我们的文件名数据库是放置到/var/lib/mlocate/中。问题是,这个数据库怎么会自动更新呢?这就是系统的例行性工作所产生的效果了,系统会主动进行updatedb。

  1. Whatis数据库的建立

与locate数据库类似的,whatis也是数据库,这个whatis是与man page有关的一个查询命令,不过要使用whatis命令时,必须要拥有whatis数据库,而这个数据库也是通过系统的例行性工作调度来自动执行的。

  1. RPM软件日志文件的新建

PRM是一种软件管理的机制。由于系统可能会经常更改软件,包括软件的新安装、非经常性更新等,都会造成软件文件名的区别。为了方便未来跟踪,系统也帮我们将文件名做个排序的记录呢,有时系统也会通过调度来帮助RPM数据库的重新生成。

  1. 删除临时文件

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

  1. 与网络服务有关的分析行为

如果你有安装类型www服务器软件(一个名为apache的软件),那么你的linux系统通常就会主动分析该软件的日志文件,同时某些认证的网络信息是否过期的问题,我们的Linux系统也会帮我们进行自动检测。

仅执行一次的工作调度

atd的启动与at运行的方式

要使用单一工作调度时,我们的Linux系统上面必须要有负责这个调度的服务,那就是atd。不过并非所有的Linux distributions都默认会把它打开,所以,某些时刻我们必须要手动将它启动才行。启动的方法很简单。

/etc/init.d/atd restart

正在停止atd:     [确定]

正在激活 atd:     [确定]

#再设置一下开机时就启动这个服务,免得每次重新启动都得再来一次

Chkconfig atd on

at的运行方式

  1. 既然是工作调度,那么应该会有产生工作的方式,并且将这些工作排进日程表中。那么生成工作的方式是怎么进行的?事实上,我们使用at这个命令来生成所要运行的工作,并将这个工作以文本文件的方式写入/var/spool/at/目录内,该工作便能等待atd这个服务的取用与执行了,就这么简单。
  2. 不过,并不是所有的人都可以进入at工作调度。为什么?因为安全的理由,很多主机被所谓的“绑架”后,最常发现的就是他们的系统当中多了很多的骇客程序,这些程序非常可能运用工作调度来执行或搜集系统信息,并定时回报给黑客团队。所以,除非你认可的账号,否则先不要让他们使用at吧!那么怎样使用at的管理呢?
  3. 我们可以利用/etc/at.allow 与/etc/at.deny这两个文件来进行at的使用限制呢!加上这两个文件后,at的工作情况其实是这样的:

(1)、 先寻找/etc/at.allow这个文件,写在这个文件中的用户才能使用at,没有在这个文件中用户则不能使用at(即使没有写在at.deny当中)。

(2)、如果/etc/at.allow不存在,就寻找/etc/at.deny这个文件,若写在这个at.deny的用户则不能使用at,而没有在这个at.deny文件中的用户就可以使用at了。

(3)、如果两个文件都不存在,那么只有root可以使用at这命令。

  1. 通过这个说明,我们知道/etc/at.allow 是管理较为严格的方式,而/etc/at.deny则较为松散(因为账号没有在该文件中,就能够执行at了)。在一般的distributions当中,由于假设系统上的所有用户都是课信任的,因为系统通常会保留一个空的/etc/at.deny文件,意识是允许所有使用at命令的意识(你可以自行检查一下该文件)。不过,万一你不希望有某些用户使用at的话,将那个用户的账号写入/etc/at.deny即可!一个账号写一行。

实际运行一个工作调度

at [-mldv] TIME

at –c 工作号码

参数:

-m : 当at的工作完成后,即使没有输出信息,以email通知用户该工作已完成。

-l  :at –l 相当于atq,列出目前系统上面的所有该用户的at调度。

-d : at –d相当于atrm,可以取消一个在at调度中的工作。

-v :  可以使用较明显的时间格式列出at调度中的任务列表。

-c : 可以列出后面接的该项工作的实际命令内容。

TIME:时间格式,这里可以定义什么时候要进行at这项工作的时间,格式有:

HH:MM    ex>04:00

在今日的HH:MM时刻进行,若已超出该时刻,则明天的HH:MM进行此工作。

HH:MM YYYY-MM-DD     ex>04:00 2009-03-17

强制规定在某年某月某一天的特殊时刻进行该工作。

HH:MM[am|pm] [month] [Data]  ex>04pm March 17

也是一样,强制在某年某月某日的某时刻进行。

HH:MM[am|pm] + number [minutes|hours|days|weeks]

ex> now +5 minutes   ex> 04pm+ 3days

在某个时间点“再加上几个时间后”才执行。

范例一:再过5分钟后,将/root/.bashrc 寄给root自己

at now +5 minutes

/bin/mail root –s “testing at job” < /root/.bashrc

<EOT> <=这里输入[ctrl]+d就会出现<EOF>的字样,代表结束。

循环执行的例行性工作调度

相对于at是仅执行一次的工作,循环执行的例行性工作调度则是由cron(crond)这个系统服务来控制的。刚才谈到linux系统上面原本就非常多的例行性工作,因为这个系统服务是默认启动。另外,由于用户自己也可以进行例行性工作调度,所以Linux也提供用户控制例行性工作调度的命令(crotab)。

用户设置

用户想要新建循环型工作调度时,使用的是crontab这命令。不过,为了安全性问题,与at类似,我们也可以限制使用crontab的用户账号。使用的限制数据有:

/etc/cron.allow

将可以使用crontab的账号写入其中,若未记录到这个文件当中的用户,就不可以使用crontab。、

/etc/cron.deny

将不可以使用crontab的账号写入其中,若未记录到这个文件当中的用户,就可以使用crontab。

linux例行性工作调度学习(一)的更多相关文章

  1. 第十五章 例行性工作(crontab)--循环执行的例行性工作调度 crontab(定时任务)

    循环执行的例行性工作调度 crontab(定时任务) 15.1 例行性工作调度 不考虑硬件与服务器的链接状态,Linux帮助提醒很多任务. Linux例行性工作是如何进行调度的? Linux调度就是通 ...

  2. 浅谈 linux 例行性工作 crontab (linux定时任务)

    定时任务大家都挺说过,就好比你手机上的闹钟,到了指定的时候就会响起. 今天在对redis缓存进行定时储存时又操作了一把,发现一些细节,写的不好.大家就将就看吧, 首先 简单介绍一下linux 例行性工 ...

  3. 重识linux-循环执行的例行性工作调度

    重识linux-循环执行的例行性工作调度 1 用户的设置 1)/etc/cron.allow  可以使用的账号,在这个文件内 2)/etc/cron.deny 不可以的放在这个文件里面 allow的优 ...

  4. Linux学习-循环执行的例行性工作排程

    循环执行的例行性工作排程则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的例行性工作,因此这个系统服务是默认启动的. 另外, 由于使用者自己也可以进行例行性工 ...

  5. Linux学习-什么是例行性工作排程

    那么 Linux 的例行性工作是如何进行排程的呢?所谓的排程就是将这些工作安排执行的流程之意! 咱们的 Linux 排程就是透过 crontab 与 at 这两个东西! Linux 工作排程的种类: ...

  6. linux备忘录-例行性工作排程 (crontab)

    例行性工作排程 例行性工作排程分为两类 at at是只执行一次就结束的指令安排.要想使用at,必须要有atd服务的支持. crontab crontab是每隔一段时间自动执行的指令安排.crontab ...

  7. Linux管理,例行性工作,at和cron

    at 仅执行一次就结束调度(服务atd必须启动) at的配置信息 1.我们设定的at进程其实都是被以文本的方式写入到/var/spool/at/目录内,然后这些设定的进程便会等待atd服务来启动这些进 ...

  8. 例行性工作排程 (crontab)

    1. 什么是例行性工作排程 1.1 Linux 工作排程的种类: at, crontab 1.2 Linux 上常见的例行性工作2. 仅运行一次的工作排程 2.1 atd 的启动与 at 运行的方式: ...

  9. 第十六章、例行性工作排程 (crontab)

    1. 什么是例行性工作排程 1.1 Linux 工作排程的种类: at, crontab 1.2 Linux 上常见的例行性工作 2. 仅运行一次的工作排程 2.1 atd 的启动与 at 运行的方式 ...

随机推荐

  1. 嵌入式开发之davinci--- MSB和LSB

    简介: MSB是Most Significant Bit的缩写,最高有效位.在二进制数中,MSB是最高加权位.与十进制数字中最左边的一位类似.通常,MSB位于二进制数的最左侧,LSB位于二进制数的最右 ...

  2. Linux的文件权限(简单易懂)

    学习这个章节,必须明白以下三个概念: 1.所有者 2.所属组 3.其他人 明白这三个概念后,接下来就学习文件的属性,那么文件的属性有什么呢?如何查看文件的属性? 在命令行下,执行 ls -l 可以得到 ...

  3. (转)java位运算

    转自:http://aijuans.iteye.com/blog/1850655 Java 位运算(移位.位与.或.异或.非)   public class Test { public static ...

  4. MYSQL批量插入数据库实现语句性能分析【转】 批量插入!程序里面对于数据库插入的功能尽量用【异步处理+批量插入+(事务)】

    假定我们的表结构如下 代码如下   CREATE TABLE example (example_id INT NOT NULL,name VARCHAR( 50 ) NOT NULL,value VA ...

  5. 调结者(Dispatcher)之执行action

    调结者的执行action StrutsExecuteFilter类的工作就是执行对应的action请求.StrutsExecuteFilter类的工作还需要有一个叫ExecuteOperations类 ...

  6. xcode 运行 lua版本崩溃 解决方案

    问题描述:运行到LuaStack::init() 崩溃 原因: luajit不支持arm64 解决方案:编译luajit64位静态库 a.可以直接下载别人编译好的库,然后直接覆盖cocos2d\ext ...

  7. label 两次点击 事件冒泡 使用时间戳的解决方案

    情况描述:在页面中input 和 label 通过for banding 然后点击input 或者label的时候都要执行一个方法   但是在点击label的时候有两次执行两次的情况,及监听到的cli ...

  8. 《从零开始学Swift》学习笔记(Day 56)——命名规范Swift编码规范之命名规范

    原创文章,欢迎转载.转载请注明:关东升的博客 程序代码中到处都是自己定义的名字,取一个有样并且符合规范的名字非常重要. 命名方法很多,但是比较有名的,广泛接受命名法有: 匈牙利命名,一般只是命名变量, ...

  9. About Outlook Rule Quota

    在Exchange中默认有设置outlook的规则的大小,如果client在outlook上设定的规则超过大小会导致功能无法使用 Outlook的郵件規則,在Exchange 2000/2003時,郵 ...

  10. 17.Recflection_反射

    www.cnblogs.com/rollenholt/archive/2011/09/02/2163758.html