免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 9494 | 回复: 24

[文本处理] 自动巡检脚本切换用户后不好用!急!!! [复制链接]

论坛徽章:
1
巨蟹座
日期:2013-10-12 09:53:21
发表于 2013-07-31 10:00 |显示全部楼层
10可用积分
本帖最后由 taosicai 于 2013-08-02 11:13 编辑

以db2inst1用户执行如下脚本,好用(昨天跟大家学习的)
for i in `db2 list db directory | awk '/Database name/{print $NF}'`
do
  db2 connect to $i
  db2 "select * from syscat.schemata"
  echo "___"
done

以root运行如下脚本,好用
su - db2inst1 <<EOF
db2 connect to TestDatabaseName
db2 "select * from syscat.schemata"
EOF

与在要把二者给合起来,以ROOT运行,就不行了呀,各位大侠快出手帮忙
su - db2inst1 <<EOF
for i in `db2 list db directory | awk '/Database name/{print $NF}'`
do
  db2 connect to $i
  db2 "select * from syscat.schemata"
  echo "___"
done
EOF
提示是for那行db2: command not found

最佳答案

查看完整内容

回复 14# taosicai 试试这个

论坛徽章:
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
发表于 2013-07-31 10:00 |显示全部楼层
回复 14# taosicai


试试这个
  1. su - db2inst1 -c "
  2. for DBN in \$(db2 list db directory | sed '/Database name/!d; s/.* //')
  3. do
  4.     echo \$DBN
  5. done
  6. "
复制代码

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每月发帖之星
日期:2015-09-11 19:30:52IT运维版块每周发帖之星
日期:2015-09-11 19:20:31IT运维版块每日发帖之星
日期:2015-08-26 06:20:00每日论坛发贴之星
日期:2015-08-20 06:20:00IT运维版块每日发帖之星
日期:2015-08-20 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:15金牛座
日期:2014-05-04 16:58:09双子座
日期:2013-12-17 16:44:37辰龙
日期:2013-11-22 15:20:59狮子座
日期:2013-11-18 22:55:08射手座
日期:2013-11-12 10:54:26
发表于 2013-07-31 10:13 |显示全部楼层
sh -x script的输出呢?

论坛徽章:
1
巨蟹座
日期:2013-10-12 09:53:21
发表于 2013-07-31 10:17 |显示全部楼层
回复 2# wenhq


没用过,假设文件名是a.sh
是要我运行 sh -x a.sh  吗?我马上去取错误日志

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每月发帖之星
日期:2015-09-11 19:30:52IT运维版块每周发帖之星
日期:2015-09-11 19:20:31IT运维版块每日发帖之星
日期:2015-08-26 06:20:00每日论坛发贴之星
日期:2015-08-20 06:20:00IT运维版块每日发帖之星
日期:2015-08-20 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:15金牛座
日期:2014-05-04 16:58:09双子座
日期:2013-12-17 16:44:37辰龙
日期:2013-11-22 15:20:59狮子座
日期:2013-11-18 22:55:08射手座
日期:2013-11-12 10:54:26
发表于 2013-07-31 10:20 |显示全部楼层
对。。。


论坛徽章:
1
巨蟹座
日期:2013-10-12 09:53:21
发表于 2013-07-31 10:27 |显示全部楼层
如下是a.sh
echo "*********************************"
echo "# uname -a"
uname -a
echo "*********************************"
echo "su db2inst1"
su - db2inst1 <<EOF
echo "*********************************"
echo "$ db2 list db directory"
db2 list db directory | grep 'Database name'
echo "*********************************"
for DBN in `db2 list db directory | awk '/Database name/{print $NF}'`
do
echo "$ db2 connect to " $DBN
db2 connect to $DBN
echo "*********************************"
echo "$ db2 \"SELECT BPNAME, NPAGES, PAGESIZE FROM SYSCAT.BUFFERPOOLS\""
db2 "SELECT BPNAME, NPAGES , PAGESIZE FROM SYSCAT.BUFFERPOOLS"
echo "*********************************"
done
EOF

如下中sh -x a.sh的结果
$ sh -x a.sh
+ echo *********************************
*********************************
+ echo # uname -a
# uname -a
+ uname -a
AIX DEP23 1 6 00CAD6564C00
+ echo *********************************
*********************************
+ echo su db2inst1
su db2inst1
+ su - db2inst1
+ 0<<
echo "*********************************"
echo "$ db2 list db directory"
db2 list db directory | grep 'Database name'
echo "*********************************"
for DBN in + db2 list db directory
+ db2 list db directory
+ awk /Database name/{print $NF}
+ awk /Database name/{print $NF}
GBATCH
GBATCH
CARDP
do
echo "$ db2 connect to "
db2 connect to
echo "*********************************"
echo "$ db2 "SELECT BPNAME, NPAGES, PAGESIZE FROM SYSCAT.BUFFERPOOLS""
db2 "SELECT BPNAME, NPAGES , PAGESIZE FROM SYSCAT.BUFFERPOOLS"
echo "*********************************"
done
db2inst1's Password:
*********************************
$ db2 list db directory
Database name                        = GBATCH
Database name                        = GBATCH
Database name                        = CARDP
*********************************
ksh[5]: 0403-057 Syntax error at line 7 : `GBATCH' is not expected.

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每月发帖之星
日期:2015-09-11 19:30:52IT运维版块每周发帖之星
日期:2015-09-11 19:20:31IT运维版块每日发帖之星
日期:2015-08-26 06:20:00每日论坛发贴之星
日期:2015-08-20 06:20:00IT运维版块每日发帖之星
日期:2015-08-20 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:15金牛座
日期:2014-05-04 16:58:09双子座
日期:2013-12-17 16:44:37辰龙
日期:2013-11-22 15:20:59狮子座
日期:2013-11-18 22:55:08射手座
日期:2013-11-12 10:54:26
发表于 2013-07-31 13:32 |显示全部楼层
root运行su 以后脚本运行还是 root而不是db2inst1

在脚本
su - db2inst1后加id
测试下。

论坛徽章:
1
巨蟹座
日期:2013-10-12 09:53:21
发表于 2013-07-31 15:03 |显示全部楼层
本帖最后由 taosicai 于 2013-07-31 15:17 编辑

回复 6# wenhq
在 su - db2inst1
后面加上新行id
显示的是db2inst1这个用户的信息

我仔细看了一下,错误在这
for DBN in + db2 list db directory
+ db2 list db directory
+ awk /Database name/{print $NF}
+ awk /Database name/{print $NF}
GBATCH
GBATCH
CARDP
do

那个GBATCH
我觉得关键错误在for处理变量这

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每月发帖之星
日期:2015-09-11 19:30:52IT运维版块每周发帖之星
日期:2015-09-11 19:20:31IT运维版块每日发帖之星
日期:2015-08-26 06:20:00每日论坛发贴之星
日期:2015-08-20 06:20:00IT运维版块每日发帖之星
日期:2015-08-20 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:15金牛座
日期:2014-05-04 16:58:09双子座
日期:2013-12-17 16:44:37辰龙
日期:2013-11-22 15:20:59狮子座
日期:2013-11-18 22:55:08射手座
日期:2013-11-12 10:54:26
发表于 2013-07-31 15:15 |显示全部楼层
su - db2inst1
for i in `db2 list db directory | awk '/Database name/{print $NF}'`
do
  db2 connect to $i
  db2 "select * from syscat.schemata"
  echo "___"
done


这个执行呢?

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每月发帖之星
日期:2015-09-11 19:30:52IT运维版块每周发帖之星
日期:2015-09-11 19:20:31IT运维版块每日发帖之星
日期:2015-08-26 06:20:00每日论坛发贴之星
日期:2015-08-20 06:20:00IT运维版块每日发帖之星
日期:2015-08-20 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:15金牛座
日期:2014-05-04 16:58:09双子座
日期:2013-12-17 16:44:37辰龙
日期:2013-11-22 15:20:59狮子座
日期:2013-11-18 22:55:08射手座
日期:2013-11-12 10:54:26
发表于 2013-07-31 15:25 |显示全部楼层
db2 list db directory | awk '/Database name/{print $NF}'

for i in $(db2 list db directory | awk '/Database name/{print $NF}')
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP