免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1025 | 回复: 0
打印 上一主题 下一主题

cron守护进程管理 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-07-20 00:29 |只看该作者 |正序浏览

       
       
       
       
       
       
       
       
Linux包含了at和cron两大守护程序,今天学习了cron

cron守护进程
  
按它的命令脚本也称为crond,是按预定时间自动执行任务的进程。当启动linux时,它运行为一个后台进程。它每分钟检查一次相应的配置文件来了解是否有事件需要得到运行。
   
有两组cron配置文件。一组由一个全局配置文件(/etc/crontab)来控制,另一组基于个别用户使用crontab命令所创建的配置文件。
   
格式化cron
   
要想了解cron是怎么工作的,从基本的cron配置文件(/etc/crontab)开始,这个文件指定几个环境变量,其中包括SHELL、PATH、HOME。
[root@m
m]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
#
run-parts
01
* * * * root run-parts /etc/cron.hourly
02
4 * * * root run-parts /etc/cron.daily
22
4 * * 0 root run-parts /etc/cron.weekly
42
4 1 * * root run-parts /etc/cron.monthly
下面是这个文件的逐行分析
SHELL=/bin/bash
#这个文件中的命令基于bash外壳程序
PATH=/sbin:/bin:/usr/sbin:/usr/bin
#这个文件中的命令位于提到的4个目录中,完整的目录路径不是必需的。/etc/crontab中的PATH还决定这些目录被搜索的顺序,如果/sbin和/usr/bin目录中同时存在flight命令,cron将首先运行/sbin/flight命令
MAILTO=root
#每当cron实际运行时,将通知发送给根用户
HOME=/
#于这个/etc/crontab配置文件相关联的主目录是根目录
#
run-parts         虽然这是一条注释,但run-parts命令被包含在下面的4行中,它运行指定目录的每个脚本文件
01
* * * * root run-parts /etc/cron.hourly
#在每天的每小时过1分钟运行/etc/cron.hourly目录中的所有脚本
02
4 * * * root run-parts /etc/cron.daily
#每天早晨4点零2分运行/etc/cron.daily目录中的所有脚本
22
4 * * 0 root run-parts /etc/cron.weekly
#每周星期日早晨4点22分运行/etc/cron.weekly目录中的所有脚本
42
4 1 * * root run-parts /etc/cron.monthly
#每月第一天早晨4点42分运行/etc/cron.monthly目录中的所有脚本
cron语法
cron文件中的每条命令都包含日期和时间字段,从左到右分别是分、小时、日、月,星期几,值的范围也就对应0-59,0-23,1-31,1-12,0-7(0和7都代表星期天)。任何一个字段中的一个星号都是一个通配符。如果第一个字段含有一个星号,那个作业每分钟运行一次,以此类推,第二个字段含有通配符那就是每小时执行一次.

如果要指定一个范围,比如上午8点到下午4点之间的每个小时,把第二个字段设置成8-16。一种可选的方法是,通过设置第三个字段为*/2。可以每隔一天运行一次作业,把5个字段弄明白了cron也就非常简单了。
标准cron作业
  
多数情况下,安装系统时标准配置包含一组cron作业,这个配置允许管理员按小时、日、周、月组织cron作业,这些类别中每个都包含各自的目录:/etc/cron.hourly,/etc/cron.daily,/etc/cron.weekly,/etc/cron.monthly。
下面是几个RHFC中按日运行的标准cron作业
logrotate
定期轮转日志,来自前一周的各个/var/log/messages项被保存为在/var/log/messages.1类似轮转的日志文件还有boot,cron,maillog,rpmkgs,secure,spooler.
Tmpwatch
删除/tmp和/var/tmp目录的中的文件,在默认情况下,如果这些目录中的文件分别在240和720小时内无人访问,它们就被删除。
用户cron作业
   如果用户希望计划自己的cron作业,可以通过crontab
-e命令来启动他自己的cron文件。
例如:假设用户配置了一个back的脚本来备份主目录中的所有文件,并且希望每个星期天的凌晨的1点25分运行back脚本,用户名为mx,并且该脚本在一个默认主目录(/home/mx)中,以mx身份进行登录,然后运行crontab
-e命令,默认的vi编辑程序打开,插入下面这行
25
1   *   *   0           /home/mx/back
一旦保存这个文件,就可以使用crontab
-l命令来检查它的内容,所有用户的cron文件都存储在/var/spool/cron目录中,默认情况下对所有者和根用户是可以访问的。
注:虽然crontab默认地使用vi编辑程序,但是你也可以设置为自己习惯的编辑器。例如,如果你习惯使用emacs,可以运行exprot
EDITOR=emacs命令。
  使用cron的过程也就是调用脚本的过程,也顺便体下脚本管理
[color="#000080"]脚本管理
[color="#000000"]当使用一个cron作业时,实际上正在运行一个脚本。这是一个可执行文件,并含有可以用其他方式在命令行界面上运行的命令。我们也可以通过一个文本编辑器把经常使用的任何一条命令放到一个文件中。保存这个文件,然后使用chmod
+x
scriptl命令把它变为可执行文件,e.g,假设这个文件在/path/to目录中,可以在任何时候通过键入/path/to/scriptl命令来运行它,如果我们有几个经常使用的命令,就可以扩展这个文件,使它包含几条命令。
[color="#000000"]把命令保存在PATH变量上的一个目录中是一种比较有效的手段,eg
假设我们的用户名是mx.运行echo
$PATH命令,我们应该看到PATH变量中的/home/mx/bin目录。如果scriptl这样的脚本保存到/home/mx/bin目录中,运行这个脚本所需要做的就是运行scriptl命令。
   
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/21734/showart_142927.html
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP