15.3
循环执行的例行性工作排程
相对于
at
是½执行一次的工作,
循环执行的例行性工作排程则是由
cron (crond)
这个系统服务来控
制的
。刚刚谈过
Linux
系统上面原本就有非常多的例行性工作,因此这个系统服务是默认启动的。
另外,
由于使用者自己也可以½行例行性工作排程,所以啰,
Linux
也提供使用者控制例行性工作
排程的指令
(crontab)
底下我们分别来聊一聊啰!
15.3.1
使用者的设定
使用者想要½立循环型工作排程时,使用的是
crontab
这个指令啦~不过,为了安全性的问题,
at
同样的,我们可以限制使用
crontab
的使用者账号喔!使用的限制数据有:
.
/etc/cron.allow
½可以使用
crontab
的账号写入其中,若不在这个文件内的使用者则不可使用
crontab
.
/etc/cron.deny
½不可以使用
crontab
的账号写入其中,若未记录到这个文件当中的使用者,就可以使用
crontab
at
很像吧!同样的,以优先级来说,
/etc/cron.allow
/etc/cron.deny
要优先,
而判断上面,这
两个文件只选择一个来限制而已,因此,½议你只要保留一个即可,
免得影响自己在设定上面的判
断!一般来说,系统默认是保留
/etc/cron.deny
你可以½不想让他执行
crontab
的那个使用者写
/etc/cron.deny
当中,一个账号一行!
当用户使用
crontab
这个指令来½立工作排程之后,该项工作就会被纪录到
/var/spool/cron/
里面去
了,而且是以账号来作为判别的喔
!举例来说,
dmtsai
使用
crontab
后,
他的工作会被纪录到
/var/spool/cron/dmtsai
里头去!但请注意,
不要使用
vi
直½编辑该文件,
因为可能由于输入语法错
误,会导致无法执行
cron
!另外,
cron
执行的每一项工作都会被纪录到
/var/log/cron
这个登录
档中,所以啰,如果你的
Linux
不知道有否被植入木马时,也可以搜寻一下
/var/log/cron
这个登录
档呢!
好了,那么我们就来聊一聊
crontab
的语法吧!
[root@study ~]#
crontab [
-
u username] [
-
l|
-
e|
-
r]
选项
参数
-
u
:只有
root
才能
½
这个
,亦即
其他使用者½立
/
移除
crontab
工作排程;
-
e
编辑
crontab
的工作
-
l
:查
crontab
的工作
-
r
:移除所有的
crontab
的工作
容,若
½
要移除一
-
e
编辑
范例一:用
dmtsai
的身份在每天的
12:00
自己
[dmtsai@study ~]$
crontab
-
e
#
时会½
vi
编辑画
编辑
工作!注意到,每
工作都是一行。
0 12 * * * mail
-
s "at 12:00" dmtsai < /home/dmtsai/.bashrc
#
|<==============
指令串
========================>|