全部博文(34)
分类:
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
#
# 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 sunday为0
后面为将要运行的脚本。
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
对cron的log进行控制.
下面是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
#
# 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~6,0为星期天)。
注意该指令会输出到一个标准出口 (亦即. 一个终端机 ),像是上面使用 ``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。
////////////////////////////////////////////////////////////////////////////////