一。什么是工作高度各类: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的运行方式
用at来生成所要运行的工作,并将这个工作以文本的方式写入到/var/spool/at目录内,这个工作就可以等待atd这个服务的取用与执行了。
不过并不是所有的用户都可以进行at调度,为了安全起,你认可的帐号才可以执行这个命令。at的管理可以使用两个文件:/etc/at.allow, /etc/at.deny,两个文件都不存在时,只有root可以运行at。
(2) 运行单一的工作调度
上面设置的工作是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来实现的,只是加入了一些参数。