Chinaunix首页 | 论坛 | 博客
  • 博客访问: 135847
  • 博文数量: 34
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 331
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-15 14:11
文章存档

2009年(1)

2007年(19)

2006年(14)

我的朋友

分类:

2006-07-17 13:38:17

XX的解说:

/////////////////////////////////////////////////////////////////////

Crontab
a. crontab
文件包括在/var/spool/cron/crontabs/username(s)
         
查看文件内容
         #crontab -l    (root
用户)
     
#cd /var/spool/cron/crontabs
         #more  usernames(s)
     
下面是root用户的crontab文件内容:
#ident        "@(#)root        1.19        98/07/06 SMI"        /*     SVr4.0 1.1.3.1        */
#
# The root crontab should be used to perform accounting data collection.
#
# The rtc command is run to adjust the real time clock if and when
# daylight savings time changes.
#
10 3 * * 0,4 /etc/cron.d/logchecker
10 3 * * 0   /usr/lib/newsyslog
15 3 * * 0 /usr/lib/fs/nfs/nfsfind
1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c >; /dev/null 2>;&1
30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean
以最后一行为例:
30   
命令开始执行的分钟数, 范围为0~59
3     
命令开始执行的小时值, 范围为0~23
*     
命令开始执行的日期值, 范围为1~31
*     
命令开始执行的月份值, 范围为1~12
*     
命令开始执行的星期值, 范围为0~6   sunday0
后面为将要运行的脚本。

b.
编辑一个crontab文件
   #EDITOR=vi
   #export EDITOR
   #crontab -e
c.
控制crontab访问(执行)
  /etc/cron.d/cron.allow
    allow
是不缺省的,可以创建,编辑,删除,移动等操作。
  /etc/cron.d/cron.deny  
    deny
用户是缺省的, 用于对crontab进行访问控制。
  /etc/default/cron
   
cronlog进行控制.
  
下面是cron.deny 的内容:
   #more cron.deny
   daemon
   bin
   smtp
   nuucp
   listen
   nobody
   noaccess

d.
移动改变一个crontab文件
   # crontab -r username
   
一般用户只可以移动自己的crontab文件,但root可以对任何的crontab文件进行操作。

////////////////////////////////////////////////////////////////////////////////

 

自己的体会:

////////////////////////////////////////////////////////////////////////////////

/sbin/service crond reload

看看你的Crond有没有运行了???

[root@serviceweb-2 bin]# /sbin/service crond reload

Reloading cron daemon configuration: [  OK  ]

# ps -ax | grep cron
看看cron有没有运行.

/sbin/service crond start //
启动服务
/sbin/service crond stop //
关闭服务
/sbin/service crond restart //
重启服务
/sbin/service crond reload //
重新载入配置

 

bash-2.03# crontab -l >>test.txt  /*导出crontab内容中到.txt*/

bash-2.03# vi test.txt   /*编写*/

"test.txt" 13 lines, 506 characters

#ident  "@(#)root       1.19    98/07/06 SMI"   /* SVr4.0 1.1.3.1       */

#

# The root crontab should be used to perform accounting data collection.

#

# The rtc command is run to adjust the real time clock if and when

# daylight savings time changes.

#

10 3 * * 0,4 /etc/cron.d/logchecker

10 3 * * 0   /usr/lib/newsyslog

15 3 * * 0 /usr/lib/fs/nfs/nfsfind

1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1

30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean

5 * * * * echo "ni hao"

~

bash-2.03# crontab test.txt  /*导入.txt的内容到crontab*/

 

 

或者直接利用crontab –e 改写保存(内定的文字编译器是VI)。

bash-2.03$ crontab -e

0 0 * * * /usr/radius/bin/rename.sh > /dev/null 2>&1

5 4 * * * /usr/radius/bin/sync_dbfiles > /dev/null 2>&1

5 * * * * /usr/radius/bin/resend.sh > /dev/null 2>&1

15 * * * * /usr/radius/bin/logout.sh > /dev/null 2>&1

35 4 * * * /usr/radius/bin/dellog.sh > /dev/null 2>&1

30 5 * * * /export/home/nevapp/tools/sync_acctdata > /dev/null 2>&1

10,40 * * * * /export/home/nevapp/tools/authcheck.sh > /dev/null 2>&1

30 2 * * * /export/home/nevapp/tools/clearauthlog.sh > /dev/null 2>&1

3,13,23,33,43,53 * * * * /export/home/nevapp/tools/ULOGchk.sh >/dev/null 2>&1

0,10,20,30,40,50 * * * * /export/home/nevapp/tools/cltchk.sh > /dev/null 2>&1

15,45 * * * * /export/home/nevapp/tools/xnchk.sh > /dev/null 2>&1

"/tmp/crontab_xayrh" 11 lines, 700 characters

bash-2.03$ crontab –r  /*删除crontab中内容*/

 

 

 

crontab文件的格式:M H D m d cmd. 
M: 
分钟(0-59)。
 
H
:小时(0-23)。
 
D
:天(1-31)。
 
m: 
月(1-12)。
 
d: 
一星期内的天(0~60为星期天)。 

 

注意该指令会输出到一个标准出口 (亦即一个终端机 ),像是上面使用 ``echo'' 的例子会将输出寄
 ``root'' 帐号。如果您想要避免它,只要像下面将输出导引到一个空的设备
 : 
 0,10,20,30,40,50 * * * * /export/home/nevapp/tools/cltchk.sh > /dev/null 2>&1

15,45 * * * * /export/home/nevapp/tools/xnchk.sh > /dev/null 2>&1

 

 

——手工可行而cron不可行,我的经验是以下二:
1
、环境变量——手工运行的环境在crontab调度执行时不存在,所以脚本中应包含环境
2
、相对路径——实际上也是环境的问题,哪怕是最常用命令最好也写成绝对路径

——
另外,服务是否启动,是否限制该用户使用cron

 

查看运行log的情况

/var/log/cron,root亦会收到mail(默认情况).

 

对于两台主机,我想有两个一样的CRONTAB 任务列表, 我可以把/bin/crontab拷贝过去覆盖吗?还是一定要手工编辑?

 

答:可以拷贝,文件在/var/spool/cron/...中,是以用户名来命名的,你进去看一眼就知道了。

 

不需要重启机器,重启服务就可以了
/etc/init.d/cron stop
/etc/init.d/cron start

 

 

 

还有这样打开的时候,原来的crontab文件内容看不到啊
比如:  
# crontab -e root
40
?
30 1 * * * CMD
?

这样编辑之后怎么保存呢/
谢谢!!

答:你把编辑器设为ed了。编辑crontab之前先运行EDITOR=vi; export EDITOR

////////////////////////////////////////////////////////////////////////////////

阅读(970) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~