chapter16:例行性工作(crontab)之一:什么是例行性工作与实际运行单一工作调度

时间:2022-06-30 03:50:39

一。什么是工作高度各类:at,cron

  Linux中,有两种工作高度功能,

(1)at:可以处理只执行一次就结束的命令,不过要执行at时,要有atd的支持,CentOS中是自带的。

(2)crontab:设置的工作将会一直循环进行下去,crontab除了可以使用命令行执行外,还可以修改/etc/crontab来支持。让crontab生效的服务则是crond这个服务。

那么LINUX中有那些例行性工作呢?

  • 进行日志文件轮替(log rotate)
  • 日志分析logwatch的任务
  • 新建locate的数据库
  • whatis数据库
  • RPM软件日志文件的新建
  • 删除临时性文件(调用tmpwatch)
  • 与网格服务相关的分析行为

 

二。只执行一次的工作调度

(1)atd的启动与at的运行方式

chapter16:例行性工作(crontab)之一:什么是例行性工作与实际运行单一工作调度

  用at来生成所要运行的工作,并将这个工作以文本的方式写入到/var/spool/at目录内,这个工作就可以等待atd这个服务的取用与执行了。

  不过并不是所有的用户都可以进行at调度,为了安全起,你认可的帐号才可以执行这个命令。at的管理可以使用两个文件:/etc/at.allow, /etc/at.deny,两个文件都不存在时,只有root可以运行at。

(2) 运行单一的工作调度

chapter16:例行性工作(crontab)之一:什么是例行性工作与实际运行单一工作调度

上面设置的工作是5分钟后将/root/.bashrc邮给/root,<EOT>是按下CTRL+d后显示的。at最重要的就是时间的指定,比较方便的是使用now + 来指定时间。上面的信息显示,这个at工作是第二个,而执行at会进入所谓的at shell环境,所以最好用绝对路径来执行命令,因为at运行时会跑到当时执行at 命令的目录。我们还可以使用 at -c 2 来显示第二个工作的内容。

  at有另外一个很好的优点,就是可以“后台执行”,由于在at工作调度的使用上,系统将at工作独立出你的bash环境,直接交给系统的atd程序来管理,因此在我们执行了at工作后就可以脱机了,剩下的工作交给linux管理。

(3)at工作的管理

atq :查看当前有多少at工作调度。

atrm n:删除第n个工作。

(4)如果系统很忙,使用batch指定工作在系统比较闲的时候进行

batch:系统有空时才进行的后台任务。它会在系统CPU负载小于0.8时才执行工作,实际上它也是使用的at来实现的,只是加入了一些参数。