免费注册 查看新帖 |

Chinaunix

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

[故障求助] 求懂shell的达人帮忙! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-07 14:30 |只看该作者 |倒序浏览
想从errpt中提取信息:

BFE4C025   0807135208 P H sysplanar0     UNDETERMINED ERROR
A6DF45AA   0807105108 I O RMCdaemon      The daemon is started.
7F88E76D   0807105108 P S console        SOFTWARE PROGRAM ERROR
F3931284   0807105108 I H ent3           ETHERNET NETWORK RECOVERY MODE
EC0BCCD4   0807105108 T H ent3           ETHERNET DOWN
2BFA76F6   0807104608 T S SYSPROC        SYSTEM SHUTDOWN BY USER
9DBCFDEE   0807105108 T O errdemon       ERROR LOGGING TURNED ON
192AC071   0807104308 T O errdemon       ERROR LOGGING TURNED OFF
A6DF45AA   0807104008 I O RMCdaemon      The daemon is started.
A2D4EDC6   0807104008 I O RMCdaemon      The daemon is stopped.
A6DF45AA   0807100008 I O RMCdaemon      The daemon is started.
2BFA76F6   0807095508 T S SYSPROC        SYSTEM SHUTDOWN BY USER
9DBCFDEE   0807100008 T O errdemon       ERROR LOGGING TURNED ON
192AC071   0807095208 T O errdemon       ERROR LOGGING TURNED OFF
A6DF45AA   0807094008 I O RMCdaemon      The daemon is started.
A2D4EDC6   0807094008 I O RMCdaemon      The daemon is stopped.
BFE4C025   0807080008 P H sysplanar0     UNDETERMINED ERROR
BFE4C025   0807030608 P H sysplanar0     UNDETERMINED ERROR
BFE4C025   0806222808 P H sysplanar0     UNDETERMINED ERROR
A6DF45AA   0806160408 I O RMCdaemon      The daemon is started.
A2D4EDC6   0806160408 I O RMCdaemon      The daemon is stopped.
F3931284   0806154708 I H ent3           ETHERNET NETWORK RECOVERY MODE
EC0BCCD4   0806154708 T H ent3           ETHERNET DOWN
F3931284   0806154608 I H ent3           ETHERNET NETWORK RECOVERY MODE
EC0BCCD4   0806154608 T H ent3           ETHERNET DOWN
BFE4C025   0806142508 P H sysplanar0     UNDETERMINED ERROR
4FC185D1   0806141108 T H ent1           TRANSMIT FAILURE
F3931284   0806134008 I H ent1           ETHERNET NETWORK RECOVERY MODE
EC0BCCD4   0806133908 T H ent1           ETHERNET DOWN
A6DF45AA   0806130008 I O RMCdaemon      The daemon is started.
E85C5C4C   0806125908 P S   CFGLFT       SOFTWARE PROGRAM ERROR
BFE4C025   0806125908 P H sysplanar0     UNDETERMINED ERROR
BFE4C025   0806125708 P H sysplanar0     UNDETERMINED ERROR
2BFA76F6   0806113108 T S SYSPROC        SYSTEM SHUTDOWN BY USER
9DBCFDEE   0806125908 T O errdemon       ERROR LOGGING TURNED ON
192AC071   0806113008 T O errdemon       ERROR LOGGING TURNED OFF

    想编一个shell ,实现的功能是在errpt中,只提取当天的信息,比如今天是8月7号,就只提取时间戳开头为0807的信息;
    还有错误代码重复的,只显示一个,比如错误代码为BFE4C025的信息有很多个,我只输出一个时间戳最新的一个;
    还有错误类型为T的,不输出;
    在描述中出现SOFTWARE字样的行不输出。
    将输出信息导入到一个文件中,文件的命名规则为主机名+日期

求达人帮帮忙!

论坛徽章:
0
2 [报告]
发表于 2008-08-07 14:35 |只看该作者
你说的这些不需要另外写脚本,errpt自带的参数就能实现了,好好去研究一下吧

论坛徽章:
0
3 [报告]
发表于 2008-08-07 14:42 |只看该作者
我这个脚本要放在主机上,主机很多,每个主机都放一个脚本,然后每天定时将输出的信息传到另外一台远端主机上。

关于errpt 的自带参数就能实现我上面说的所有内容?

我好好研究研究,另外,希望能多给点提示!

[ 本帖最后由 lanfeng356 于 2008-8-7 15:00 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2008-08-07 15:45 |只看该作者
还有我想grep这个命令date +"%m%d"的返回值,怎么弄啊?

论坛徽章:
0
5 [报告]
发表于 2008-08-07 16:00 |只看该作者
To display a detailed report of all errors logged in the past 24 hours, enter:
errpt -a -s mmddhhmmyy

            where the mmddhhmmyy string equals the current month, day, hour, minute, and year,
            minus 24 hours.

论坛徽章:
0
6 [报告]
发表于 2008-08-07 16:03 |只看该作者
如果你只想提取某一天的信息 enter:
errpt |grep 日期

论坛徽章:
0
7 [报告]
发表于 2008-08-07 16:22 |只看该作者
原帖由 panhaizhou 于 2008-8-7 16:03 发表
如果你只想提取某一天的信息 enter:
errpt |grep 日期



我是只想取某一天的信息,我想用errpt|grep 日期 这个命令,但是,日期我想用 date +"%m%d" 这个命令代替

因为有很多机器,我不可能挨个机器去使用命令,我想用crontab去定时执行,提取当天的错误信息

论坛徽章:
0
8 [报告]
发表于 2008-08-07 16:50 |只看该作者
DATE=date +"%m%d"
errpt -s $DATE
脚本里面字符串截取是很常见的啊

论坛徽章:
0
9 [报告]
发表于 2008-08-07 17:33 |只看该作者

回复 #8 我老婆黑社会 的帖子

刚接触AIX和shell,很多东西都不熟;谢谢你的提示!

DATE=`date +%m%d`
echo DATE
echo $DATE

errpt |grep $DATE

论坛徽章:
0
10 [报告]
发表于 2008-08-07 18:29 |只看该作者
我现在写成这样了:

DATE=`date +%m%d`
hostname=`hostname`
echo hostname
echo $hostname
echo DATE
echo $DATE
errpt|grep $DATE>errpt$DATE.log
errpt-T "INFO","PEND","PERF","PERM","UNKN"|grep $DATE|awk '{print $1" " $3" " $4" "$5"    "$6" "$7" "$8" "$9}'|sort -u>errpt$hostname$DATE.log


运行后的结果是
7F88E76D P S console    SOFTWARE PROGRAM ERROR
A2D4EDC6 I O RMCdaemon    The daemon is stopped.
A6DF45AA I O RMCdaemon    The daemon is started.
BFE4C025 P H sysplanar0    UNDETERMINED ERROR  
F3931284 I H ent3    ETHERNET NETWORK RECOVERY MODE

现在就差把后面描述SOFTWARE的错误去掉了,剩下的似乎不是很难,有能给个提示的更是感谢哈~

PS:刚接触shell ,感觉写出来的东西,功能差不多,但是瞅着很别扭!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP