|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!cron是一个能够用来依据工夫、日期、月份、礼拜的组合来调剂对反复义务的实行的保卫历程。
cron假定体系延续运转。假如当某义务被调剂时体系不在运转,该义务就不会被实行。
要利用cron办事,你必需装置了vixie-cronRPM软件包,并且必需在运转crond办事。要判断该软件包是不是已装置,利用rpm-qvixie-cron下令。要判断该办事是不是在运转,利用/sbin/servicecrondstatus下令。
37.1.1.设置cron义务
cron的主设置文件是/etc/crontab,它包含上面几行:- SHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=rootHOME=/#run-parts01****rootrun-parts/etc/cron.hourly024***rootrun-parts/etc/cron.daily224**0rootrun-parts/etc/cron.weekly4241**rootrun-parts/etc/cron.monthly
复制代码 前四行是用来设置cron义务运转情况的变量。SHELL变量的值告知体系要利用哪一个shell情况(在这个例子里是bashshell);PATH变量界说用来实行下令的路径。cron义务的输入被邮寄给MAILTO变量界说的用户名。假如MAILTO变量被界说为空缺字符串(MAILTO=""),电子邮件就不会被寄出。HOME变量能够用来设置在实行下令或剧本时利用的主目次。
/etc/crontab文件中的每行都代表一项义务,它的格局是:- minutehourdaymonthdayofweekcommand
复制代码
- minute—分钟,从0到59之间的任何整数
- hour—小时,从0到23之间的任何整数
- day—日期,从1到31之间的任何整数(假如指定了月份,必需是该月份的无效日期)
- month—月份,从1到12之间的任何整数(或利用月份的英文简写如jan、feb等等)
- dayofweek—礼拜,从0到7之间的任何整数,这里的0或7代表日曜日(或利用礼拜的英文简写如sun、mon等等)
- command—要实行的下令(下令能够是ls/proc>>/tmp/proc之类的下令,也能够是实行你自行编写的剧本的下令。)
在以上任何值中,星号(*)能够用来代表一切无效的值。比如,月份值中的星号意味着在满意别的制约前提后每个月都实行该下令。
整数间的短线(-)指定一个整数局限。比如,1-4意味着整数1、2、3、4。
用逗号(,)离隔的一系列值指定一个列表。比如,3,4,6,8标明这四个指定的整数。
正斜线(/)能够用来指定距离频次。在局限后加上/<integer>意味着在局限内能够跳过integer。比如,0-59/2能够用来在分钟字段界说每两分钟。距离频次值还能够和星号一同利用。比方,*/3的值能够用在月份字段中暗示每三个月运转一次义务。
开首为井号(#)的行是正文,不会被处置。
如你在/etc/crontab文件中所见,它利用run-parts剧本来实行/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly和/etc/cron.monthly目次中的剧本,这些剧本被响应地每小时、逐日、每周、或每个月实行。这些目次中的文件应当是shell剧本。
假如某cron义务必要依据调剂来实行,而不是每小时、逐日、每周、或每个月地实行,它能够被增加到/etc/cron.d目次中。该目次中的一切文件利用和/etc/crontab中一样的语法。- #recordthememoryusageofthesystemeverymonday#at3:30AMinthefile/tmp/meminfo303**moncat/proc/meminfo>>/tmp/meminfo#runcustomscriptthefirstdayofeverymonthat4:10AM1041**/root/scripts/backup.sh
复制代码 例37-1.crontab的例子
根用户之外的用户可使用crontab工具来设置cron义务。一切用户界说的crontab都被保留在/var/spool/cron目次中,并利用创立它们的用户身份来实行。要以某用户身份创立一个crontab项目,登录为该用户,然后键进crontab-e下令,利用由VISUAL或EDITOR情况变量指定的编纂器来编纂该用户的crontab。该文件利用的格局和/etc/crontab不异。当对crontab所做的改动被保留后,该crontab文件就会依据该用户名被保留,并写进文件/var/spool/cron/username中。
cron保卫历程每分钟都反省/etc/crontab文件、etc/cron.d/目次、和/var/spool/cron目次中的改动。假如发明了改动,它们就会被载进内存。如许,当某个crontab文件改动后就不用从头启动保卫历程了。
37.1.2.把持对cron的利用
/etc/cron.allow和/etc/cron.deny文件被用来限定对cron的利用。这两个利用把持文件的格局都是每行一个用户。两个文件都不同意空格。假如利用把持文件被修正了,cron保卫历程(crond)不用被重启。利用把持文件在每次用户增加或删除一项cron义务时城市被读取。
不管利用把持文件中的划定怎样,根用户都老是可使用cron。
假如cron.allow文件存在,只要个中列出的用户才被同意利用cron,而且cron.deny文件会被疏忽。
假如cron.allow文件不存在,一切在cron.deny中列出的用户都被克制利用cron。
37.1.3.启动和中断办事
要启动cron办事,利用/sbin/servicecrondstart下令。要中断该办事,利用/sbin/servicecrondstop下令。保举你在引诱时启动该办事。
因为Cron是Linux的内置办事,能够用以下的***启动、封闭这个办事:
/sbin/servicecrondstart//启动办事
/sbin/servicecrondstop//封闭办事
/sbin/servicecrondrestart//重启办事
/sbin/servicecrondreload//从头载进设置
。。。。。
crontab在/etc目次上面存在cron.d,cron.daily,cron.weekly,cron.monthly,cron.hourly五个目次和crontab,cron.deny二个文件。
cron.daily是天天实行一次的job,cron.weekly是每一个礼拜实行一次的job.
cron.monthly是每个月实行一次的job,cron.hourly是每一个小时实行一次的job.
cron.d是体系主动按期必要做的义务,可是又不是按小时,按天,按礼拜,按月来实行的,那末就放在这个目次上面。
假如是按小时,按天,按礼拜,按月的来实行的话,则能够放到后面响应的目次上面往。
那末有人大概会问,后面按天,按礼拜,按月实行的job,究竟是甚么时分往主动实行呢?
经由过程观察/etc/crontab文件就很分明了:
[admin@c2c_stdetc]$catcrontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
#run-parts
01****rootrun-parts/etc/cron.hourly
024***rootrun-parts/etc/cron.daily
224**0rootrun-parts/etc/cron.weekly
4241**rootrun-parts/etc/cron.monthly
/etc/cron.deny文件就是用于把持不让哪些用户利用Crontab的功效。
别的在/var/spool上面存在着两个目次cron,anacron。
个中cron目次上面有每一个用户的本人经由过程crontab-e增添的crontab的内容。
anacron目次上面是纪录的是cron.daily,cron.monthly,cron.weekly的上一次实行的工夫。
linux的cron办事是每隔一分钟往读取一次/var/spool/cron,/etc/crontab,/etc/cron.d上面一切的内容。
在linux体系上,默许情形下在/etc/cron.daily目次上面存在以下文件:
-rwxr-xr-x1rootroot286Aug142004tmpwatch
-rwxr-xr-x1rootroot276Sep2920040anacron
-rwxr-xr-x1rootroot2133Dec12004prelink
-rwxr-xr-x1rootroot180Jul132005logrotate
-rwxr-xr-x1rootroot121Aug92005slocate.cron
-rwxr-xr-x1rootroot48Apr102006mcelog.cron
-rwxr-xr-x1rootroot418Apr14200600-makewhatis.cron
-rwxr-xr-x1rootroot104May312006rpm
lrwxrwxrwx1rootroot28Apr708:2500-logwatch->../log.d/scripts/logwatch.pl
这里有些器材是很耗资本的,能够思索往失落。
tmpwatch的感化是扫除失落一些长工夫没有会见的一时文件。这个留着。
0anacron的感化是更新crontabjob的实行工夫,这个必需要留着。它在称号的后面另上0,以包管这个步伐会在
其他步伐前实行。而且这个被run-parts主动挪用。
prelink的感化是预链接一些静态链接库和可实行文件,以此来加速启动工夫和削减run-time的内存分派,有点相似于oracle
的dbms_shared_pool.keep的感化一样。这个器材是个双刃剑。
logrotate的感化轮回使用,紧缩一些体系日记的,仍是留着。
slocate.cron的感化更新slocatedatabase,用于为locate办事的,很损耗资本,能够停失落。
mcelog.cron的感化是用于天生/var/log/mcelog文件,留着。
00-makewhatis.cron的感化是创立whatisdatabase,用于为whatis办事的。较为损耗资本,能够往失落。
这个在cron.weekly内里也存在,这内里的也能够往失落。
rmp的感化是天天将体系上装置过的rpm包的信息放到/var/log/rpmpkgs中往。这个没甚么用途,能够往失落。
00-logwatch的感化是用于监控linuxlog文件的。能够留着。
欢迎大家来到仓酷云论坛! |
|