ChinaUnix首页 > 精华文章 > Solaris > 正文

[精华] crontab命令详解


http://www.chinaunix.net 作者:pcbird  发表于:2009-05-27 10:24:00
发表评论】 【查看原文】 【Solaris讨论区】【关闭

crontab命令的功能是在一定的时间间隔调度一些命令的执行。在/etc目录下有一个crontab文件,这里存放有系统运行的一些调度程序。每个用户可以建立自己的调度crontab。

crontab命令有三种形式的命令行结构:

crontab [-u user] [file]

crontab [-u user] [-e|-l|-r]

crontab -l -u [-e|-l|-r] 第一个命令行中,file是命令文件的名字。如果在命令行中指定了这个文件,那么执行crontab命令,则将这个文件拷贝到crontabs目录下;如果在命令行中没有制定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将他们也存放在crontab目录下。

命令行中-r选项的作用是从/usr/spool/cron/crontabs目录下删除用户定义的文件crontab;

命令行中-l选项的作用是显示用户crontab文件的内容。

使用命令crontab -u user -e命令编辑用户user的cron(c)作业。用户通过编辑文件来增加或修改任何作业请求。

执行命令crontab -u user -r即可删除当前用户的所有的cron作业。

作业与它们预定的时间储存在文件/usr/spool/cron/crontabs/username里。username使用户名,在相应的文件中存放着该用户所要运行的命令。命令执行的结果,无论是标准输出还是错误输出,都将以邮件形式发给用户。文件里的每一个请求必须包含以spaces和tabs分割的六个域。前五个字段可以取整数值,指定何时开始工作,第六个域是字符串,称为命令字段,其中包括了crontab调度执行的命令。

第一道第五个字段的整数取值范围及意义是:

0~59 表示分

1~23 表示小时

1~31 表示日

1~12 表示月份

0~6 表示星期(其中0表示星期日)

/usr/lib/cron/cron.allow表示谁能使用crontab命令。如果它是一个空文件表明没有一个用户能安排作业。如果这个文件不存在,而有另外一个文件/usr/lib/cron/cron.deny,则只有不包括在这个文件中的用户才可以使用crontab命令。如果它是一个空文件表明任何用户都可安排作业。两个文件同时存在时cron.allow优先,如果都不存在,只有超级用户可以安排作业。



 cynosurelu 回复于:2004-03-03 00:19:55

说的蛮详细的,其实可以加点例子,这样对大家都好啊!


 C.Arthur 回复于:2004-03-03 09:13:47

不错的帖子


 清透水瓶 回复于:2004-03-03 13:27:33

如果想要修改crontab,一般做以下的几步就可以了
将crontab 推到一个自定义的文件上
crontab -l>;tmp
编辑这个文件,做需要的修改
vi tmp
推回crontab
crontab tmp


 :em02:  :em02:  :em02:  :em02:  :em02:


 yqxfm 回复于:2004-03-03 19:05:42

强烈的支持楼主!!!!


 pcbird 回复于:2004-03-03 21:54:22

多谢!


 iricyan 回复于:2004-03-03 22:20:16

痛感基础不扎实 :(


 adoyee 回复于:2004-03-05 11:33:27

不知道楼主用的什么版本,我的
/usr/spool/cron/crontabs/username
是在
/var/spool/cron/username
username这个文件直接放的是cron要执行的命令。
我用的是RH9,一些是我的uname -a 结果:
Linux Linux-Server 2.4.20-8 #1 Thu Mar 13 17:54:28 EST 2003 i686 i686 i386 GNU/Linux


 bearken0 回复于:2004-03-07 20:03:16

这对一个刚刚上路的学者是很管用的啊!
如果有可能以后帮忙再提供一些关于CRONTAB或编辑VI的
资料。再次表示感谢了!


 idcpanda 回复于:2004-03-08 12:47:15

好文章啊


 egg99887766 回复于:2004-03-08 13:02:14

好人啊


 duanyg 回复于:2004-03-28 20:33:49

哥们,谢谢了!还有个问题想请教,为什么有时crontab -e会提示249这样的数字,但是没有要编辑的内容,ctrl +d退出,提示"crontab 文件没有改变",求解!!


 kill 回复于:2005-01-27 08:57:23

引用:原帖由 "duanyg"]
 发表:


因为你的EDITOR环境变量设置有问题


 steellyz 回复于:2005-01-27 09:15:58

EDITOR环境变量设置:
EDITOR=vi;export EDITOR


 zflfaufa 回复于:2005-12-31 23:31:35

[root@server ~]# crontab -l
2 23 * * * /usr/tomcat/bin/shutdown.sh

我输入:
crontab -e然后在里面输入:
2 23 * * * /usr/tomcat/bin/shutdown.sh

为什么到了晚上23:02不会执行/usr/tomcat/bin/shutdown.sh,这tomcat进程还在,还没有关闭掉


 a2z2008 回复于:2006-01-04 14:35:57

感谢楼主给我辈的赐教。


 IT业的民工 回复于:2006-01-04 19:14:31

顶!


 coolbzk 回复于:2006-01-05 16:24:58

好文,尤其是权限这里,容易混淆的地方,不错不错


 jobandmiss 回复于:2006-01-05 16:42:10

收下


 king1981 回复于:2007-11-07 09:59:18

阅,写的挺好的


 yama998 回复于:2007-12-14 08:45:43

多謝樓主及各位共享學習經驗!


 pxczy 回复于:2009-05-25 15:00:12

连个例子都没有,这也叫好?:shock:


 SolarisLs 回复于:2009-05-25 15:14:00

好东西,好东西啊:mrgreen:


 风之幻想 回复于:2009-05-25 15:15:32

顶一下。灌水。


 不进一环 回复于:2009-05-25 15:22:02

补充一下,昨晚学到的:

solaris 不支持 */5 的写法,只能写为0,5,10,15...

crontab -e 之前一般需要先设定缺省editor
以下示例说明如何确定是否已定义编辑器,以及如何将 vi 设置为缺省值。 
which $EDITOR
EDITOR=vi
export EDITOR


 yoyosys 回复于:2009-05-25 15:30:54

顶一个


 lvan6750 回复于:2009-05-26 22:42:26

/usr/spool/cron/crontabs
这个路径不对哦


 要努力学习 回复于:2009-05-27 09:32:32

引用:原帖由 pxczy 于 2009-5-25 15:00 发表 [url=http://bbs2.chinaunix.net/redirect.php?goto=findpost&pid=10599668&ptid=271992]
连个例子都没有,这也叫好?:shock: 


\

你挖坟呢你?发帖不看时间。服你了:outu:


 guopy007 回复于:2009-05-27 09:42:27

确实够执着的 这都挖出来了,我以前记这个就记不清 就只记着一个 分 时 日 月 星期 后面跟命令绝对路径


 xin2v 回复于:2009-05-27 09:57:41

比较不支持  网上随便一搜索  都已大队   不能算精华  我是说实话


 风之幻想 回复于:2009-05-27 10:24:00

引用:原帖由 xin2v 于 2009-5-27 09:57 发表 [url=http://bbs2.chinaunix.net/redirect.php?goto=findpost&pid=10610693&ptid=271992]
比较不支持  网上随便一搜索  都已大队   不能算精华  我是说实话 



时间决定的吧。因为,当初接触的人少吧。




原文链接:http://bbs.chinaunix.net/viewthread.php?tid=271992
转载请注明作者名及原文出处