免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3294 | 回复: 7
打印 上一主题 下一主题

[新手入门] crontab执行后输出结果很诡异 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-10-11 17:11 |只看该作者 |倒序浏览
AIX5.3 p630
要采集CPU运行情况
直接运行sar -u  5 5的结果如下:
AIX 主机名 3 5 005A849A4C00    10/11/07

系统配置lcpu=4

16:46:24    %usr    %sys    %wio   %idle
16:46:29      10       2      17      71
16:46:34      10       3      18      68
16:46:39       9       2      13      76
16:46:44       9       2      13      76
16:46:49       9       3      12      76
平均值        9       3      15      73

用脚本sar -u  5 5 | awk '{if(NF>0) print $1,$2,$3,$4,$5}'| grep -v -E 'AIX|lcpu|平均值|%'
直接执行这个语句或者放到脚本中,执行脚本结果都是正常的,如下:
16:35:30 16 2 13 69
16:35:35 15 2 14 69
16:35:40 15 2 15 68
16:35:45 14 2 15 69
16:35:50 16 1 14 69

但是由crontab来执行,执行完了之后会多出一行average
16:35:30 16 2 13 69      
16:35:35 15 2 14 69      
16:35:40 15 2 15 68      
16:35:45 14 2 15 69      
16:35:50 16 1 14 69      
Average 15 2 14 69      

我这里安装的中文字符集(由第一个结果能够看出来)怎么这里出现了average呢?

论坛徽章:
0
2 [报告]
发表于 2007-10-11 19:06 |只看该作者
把脚本改成这样就可以了

sar -u  5 5 | awk '{if(NF>0) print $1,$2,$3,$4,$5}'| grep -v -E 'AIX|lcpu|Average|%'

论坛徽章:
0
3 [报告]
发表于 2007-10-12 10:07 |只看该作者
LANG变量设置应该不同吧,我指在两种情况下。

论坛徽章:
0
4 [报告]
发表于 2007-10-12 14:35 |只看该作者
crontab任务是不带环境变量信息的,可以在shell最前加上主动执行该用户的.profile文件,就和登录后执行的一样了。或者改用at任务,at是带用户的环境变量的

论坛徽章:
0
5 [报告]
发表于 2007-10-16 15:50 |只看该作者
原帖由 mayu 于 2007-10-12 10:07 发表
LANG变量设置应该不同吧,我指在两种情况下。


是的,脚本是用root用户执行的,root用户的LANG是中文,但是crontab执行出来的是英文,所以才会导致最下面有一个average,
我想到过这个,但是不知道应该怎么改~
root用户下LANG=Zh_CN,crontab环境的LANG怎么看呢?是在/etc/envirenment中吗?我看了看也是LANG=Zh_CN

论坛徽章:
0
6 [报告]
发表于 2007-10-16 16:00 |只看该作者
原帖由 cghou 于 2007-10-12 14:35 发表
crontab任务是不带环境变量信息的,可以在shell最前加上主动执行该用户的.profile文件,就和登录后执行的一样了。或者改用at任务,at是带用户的环境变量的


可以在shell最前加上主动执行该用户的.profile文件,是指crontab -e中加执行.profile还是说在我要运行的脚本中添加呢?
脚本是用root用户执行的,现在是crontab执行出来的结果不符合我的要求,而用root用户做的脚本符合我的要求,我应该是要修改crontab来达到我的要求吧,在crontab -e中添加./.profile然后重新启动,没有用处。

论坛徽章:
0
7 [报告]
发表于 2007-10-16 17:24 |只看该作者
我用crontab -e
然后添加了一条
51 16 * * * ./.profile,还是没用

然后又试了crontab -e中直接加
.profile     执行不了~

论坛徽章:
0
8 [报告]
发表于 2007-10-17 08:21 |只看该作者
写一个脚本,包括:
.  /.profile
sar -u  5 5 | awk '{if(NF>0) print $1,$2,$3,$4,$5}'| grep -v -E 'AIX|lcpu|平均值|%'
保存为a.sh

然后
crontab -e 把a.sh作为一个命令加到crontab中。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP