1. 检查一下cron服务是否已启动
root@ocs00biiitf001:~ #> svcs | grep cron
online 15:11:29 svc:/system/cron:default
如果未启动,则用svcadm enable svc:/system/cron:default
2. 修改配置文件,允许用户使用crontab
$ crontab -l
crontab: you are not authorized to use cron. Sorry.
说明用户没有使用crontab的权限。需要将用户加入到/etc/cron.d/cron.allow中。
加入后如下:
root@ocs00biiitf001:~ #> more /etc/cron.d/cron.allow
root
jyu
$ crontab -l
crontab: can't open your crontab file.
用户已经授权,但没有建crontab文件,因此无法打开
3. 创建crontab
$ export EDITOR=vi
EDITOR=vi: is not an identifier
这个可能是shell的问题,检查一下shell:
$ echo $SHELL
/bin/sh
改用bash:
$ /usr/bin/bash
bash-3.00$
bash-3.00$ export EDITOR=vi
bash-3.00$ crontab -e
打开vi文件后,在文件中加入如下内容,用来测试crontab
0,15,30,45 * * * * /usr/bin/date >> /export/home/jyu/date.log
然后保存,退出。
添加crontab后,会在/usr/spool/cron/crontabs目录增加一个文件,记录crontab的内容。
bash-3.00$ ls -ltr /usr/spool/cron/crontabs
total 10
-r-------- 1 root root 452 Jan 22 2005 lp
-rw------- 1 root sys 308 Nov 10 2006 sys
-rw------- 1 root root 513 Jan 31 2008 root
-rw------- 1 root root 317 Jan 31 2008 adm
-rw------- 1 root other 62 Nov 19 15:03 jyu
该文件只有root用户可读。
root@ocs00biiitf001:~ #> more /usr/spool/cron/crontabs/jyu
0,15,30,45 * * * * /usr/bin/date >> /export/home/jyu/date.log
4. 检查cron任务的log信息
cron日志保存在/var/cron/log文件中。如果任务执行成功,则有如下信息:
> CMD: /usr/bin/date >> /export/home/jyu/date.log (表示执行的命令)
> jyu 1550 c Wed Nov 19 15:16:12 2008 似乎是执行开始时间
< jyu 1550 c Wed Nov 19 15:16:12 2008 似乎是执行结束时间
附: root用户查看jyu用户的crontab信息
root@ocs00biiitf001:/var/cron #> crontab -l jyu
0,15,30,45 * * * * /usr/bin/date >> /export/home/jyu/date.log
root用户修改jyu用户的crontab信息
root@ocs00biiitf001:/var/cron #> crontab -e jyu
root用户删除jyu用户的crontab信息
root@ocs00biiitf001:/var/cron #> crontab -r jyu
查看系统的所有crontab信息:
进入/usr/spool/cron/crontabs(或/var/spool/cron/crontabs)目录,该目录下每个文件是一个用户的crontab信息,文件名与用户名相同。
原文转自:http://space.itpub.net/228190/viewspace-497984