免费注册 查看新帖 |

Chinaunix

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

[系统管理] 通过pmon进程来查看用户名和数据库实例名的shell命令 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-07-02 22:08 |只看该作者 |倒序浏览
各位大神,大家好!
小弟最近想写个通过pmon进程来查看用户名和数据库实例名的shell命令!(要在bash和ksh上通用)
----------------------------------------------------------------------------------------------------------------------------
ps -ef|grep pmon|grep -v grep|grep -v +ASM|grep -v pmon.sh后看到的结果是这样的:
(注:这样写是为了在ksh和bash上通用,因为这两种bash的egrep用法不一样,所以就用了那么多grep -v)
oracle1  XXXX  XXXX  XXXX  XXXX  XXXX ora_pmon_inst1
oracle2  XXXX  XXXX  XXXX  XXXX  XXXX ora_pmon_inst2
oracle3  XXXX  XXXX  XXXX  XXXX  XXXX ora_pmon_inst3


我希望命令执行的效果是:
oracle1  inst1
oracle2  inst2
oracle3  inst3

----------------------------------------------------------------------------------------------------------------------------
我已经写了能够单独单独取第一个用户名,和截取最后一个字段中实例名的命令!
ps -ef|grep pmon|grep -v grep|grep -v +ASM|grep -v pmon.sh|awk '{print $1}'
ps -ef|grep pmon|grep -v grep|grep -v +ASM|grep -v pmon.sh|awk '{print $NF}'|awk 'BEGIN {FS="_"}{print $3}'

我的思路是:╰( ̄▽ ̄)╮
如果能够直接用一个awk取出2列,然后只处理其中一列,和另外一列原样输出,这样是最理想的!
如果不能一次取出2列来操作,那就把上面两个命令的结果作为2列合并到一起也行!

我不想用那种复杂的循环每行的脚本来实现,因为是这个命令是放在CRT的button bar里面用的!
----------------------------------------------------------------------------------------------------------------------------

但是无论哪种思路,我真的都尝试了很多方法还是无法实现!
真的想不出来了,希望有shell高手能指点一下小弟!
非常感谢~~!非常感谢~~!非常感谢~~!非常感谢~~!


PS:祝各位回帖的小伙伴生活愉快,工作顺利!O(∩_∩)O谢谢~~

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
2 [报告]
发表于 2014-07-03 08:28 |只看该作者
回复 1# hu_wen_wei
这样行不?
  1. echo "oracle1  XXXX  XXXX  XXXX  XXXX  XXXX ora_pmon_inst1                    oracle2  XXXX  XXXX  XXXX  XXXX  XXXX ora_pmon_inst2
  2. oracle3  XXXX  XXXX  XXXX  XXXX  XXXX ora_pmon_inst3" | sed -e 's/^\([^ ]*\).*ora_pmon_\(.*\)$/\1 \2/'
  3. oracle1 inst1
  4. oracle2 inst2
  5. oracle3 inst3
复制代码

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
3 [报告]
发表于 2014-07-03 08:51 |只看该作者
  1. ps -ef | grep [_]pmon_ | awk -F '[_ ]+' '{print $1,$NF}'
复制代码

论坛徽章:
0
4 [报告]
发表于 2014-07-05 00:32 |只看该作者
回复 3# Shell_HAT


    您好,谢谢您的解答,这样在Linux下执行是对的,但是在AIX下第一个字段出不来!

论坛徽章:
0
5 [报告]
发表于 2014-07-05 00:34 |只看该作者
回复 2# q1208c


     您好,谢谢您的解答,这样在Linux下执行是对的,但是在AIX下第一个字段出不来!

还有,能解释一下您这个写法吗?有点看不明白s/^\([^ ]*\)

我写成s/\([^ ]*\)执行出来的结果是一样的,但是不太明白小括号里面是什么意思,为什么要在^和空格中选一个呢?

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
6 [报告]
发表于 2014-07-07 09:35 |只看该作者
回复 5# hu_wen_wei

[^ ] 表示 除了空格以外所有的字符. 这应该是基本正则的表达方式之一吧.
   

论坛徽章:
12
技术图书徽章
日期:2014-07-11 16:27:5215-16赛季CBA联赛之山西
日期:2016-01-08 16:10:11操作系统版块每日发帖之星
日期:2015-08-01 06:20:002015亚冠之武里南联
日期:2015-06-11 01:12:162015年亚洲杯之阿联酋
日期:2015-03-20 11:41:462015年亚洲杯纪念徽章
日期:2015-03-18 18:08:422015年辞旧岁徽章
日期:2015-03-03 16:54:15丑牛
日期:2015-01-10 22:23:32天秤座
日期:2014-08-20 15:53:35水瓶座
日期:2014-08-11 12:08:51午马
日期:2014-07-23 23:03:38IT运维版块每日发帖之星
日期:2016-02-18 06:20:00
7 [报告]
发表于 2014-07-08 10:16 |只看该作者
回复 5# hu_wen_wei


AIX自带的awk和Linux不一样,要想一样,那么装AIX的Linux tool的gawk包。 然后用 /opt/freeware/bin/awk 的方式来使用。 我在itpub 上给你的方法是合适两个平台的,虽然长了点,但是通用。
  1. ps -ef|grep pmon |grep -v asm|grep -v grep|grep -v sed| awk '{print $1, $NF}'| sed 's/ora_pmon_//g'
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP