Linux例行性工作排程(2)

6.循环执行的例行性工作排程:由cron(crond)这个系统服务来控制,同样可以通过/etc/cron.allow,/etc/cron.allow来进行限制该服务的使用名单。当用户使用crontab这个指令后,该项记录会被记录到/var/spool/cron/里面去,并且以账号作为判断。比如huge执行了crontab这个指令,他的工作会被记录到/var/spool/cron/huge里去。但不要直接使用vi直接编辑该档案,因为可能输入语法错误。会导致无法执行cron。另外,cron执行的每一项工作都会被记录到/var/log/cron这个登录档中,所以可以根据这个档案,来擦看是否有木马植入。

7.crontab [-u username] [-l|-e|-r]:循环执行例程任务,参数

1)-u:只有root才能执行这个任务,亦即帮其他使用者建立/移除crontab工作排程

2)-e:编辑crontab的工作内容

3)-l:查阅crontab的工作内容

4)-r:移除所有crontab的工作内容,若仅移除一项,使用-e比较好。

每项指令都有六个字段,含义依次为:分钟(0-59)、小时(0-23)、日期(1-31)、月份(1-12)、周(0-7)、指令。其中0和7都代表周日。

还有一些辅助字符:

a)*:代表任何时刻都接受的意思。

b),:代表分割时段的意思,比如下达3到6点,则是这样的:0 3,6 * * * command

c)-:代表一段时间范围,比如8到12点之间的每小时的20分钟进行一项工作:20 8-12 * * * command

d)/n(斜线):n表示数字,亦即每隔n单位间隔的意思,例如每5分钟进行一次,则:* /5 * * * * command。

8./etc/crontab:系统配置文件,crontab -e是针对使用者的cron来设计的,如果是系统例行性任务时,只需编辑.etc/crontab这个档案就可以了,cron这个服务的最低侦测限制是分钟,所以cron会每分钟去读取一次/etc/crontab与/usr/bin/crontab这个执行档,所以,只要你编辑完/etc/crontab这个档案,并将它保存之后,那么cron的设定就自动会来执行了。

查看该文件会发现有一个PATH,代表执行文件搜寻路径,MAILTO=root:代表若有额外的STDOUT,将以email将数据传给该指定的用户。

/etc/crontab这个档案支持两种指令下达方式:

1)指令型态,即直接在后面跟指令

2)目录规划,使用run-parts指令,将要执行的脚本都放到这个目录下面,即可

9.一些注意事项:

1)资源分配不均,包括流量,区域内其他PC的流量侦测,CPU使用率,RAM使用率,在线人数实时侦测。

2)取消不要输出的项目

3)安全监测,在/var/log/cron线面查看木马

4)周与日月不可共存

10.anacron:处理非24小时一直启动的Linux系统的crontab的执行,所以anacron并不能指定合适执行某项任务,而是以天为单位或者是在开机后立即进行anacron的动作,他会去侦测停机期间应该进行但是没有进行的crontab任务,并将该任务执行一遍后,anacron就会自动停止了。

anacron其实是一只程序,而不是一个服务。

11.anacron [-sfn] [job];anacron -u [job]:参数,

1)开始一连续的执行各项工作(job),会依据时间记录文件的数据判断是否进行

2)-f:强制进行,而不去判断事件记录文件的时间戳

3)-n:立刻进行未进行的任务,而不延迟等待时间

4)-u:仅更新时间记录文件的时间戳,不进行任何工作

5)job:有/etc/anacrontab定义的各项工作名称

12.当我们下达anacron指令后,它会运作:

1)由/etc/anacrontab分析到cron.daily这项工作名称的天数为1天

2)由/var/spool/anacron/cron.daily取出最近一次执行anacron的时间戳

3)由上个步骤与目前的时间比较,若差异天数为设定的天数以上(包含这一天,/etc/anacrontab的第一个参数)就准备进行该指令

4)若准备进行指令,根据/etc/anacrontab的设定,将延迟设定的分钟数(/etc/anacrontab的第二个参数)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/17052.html