2007-8-31 14:02
xn_sung
db2who和db2kick
db2 list applications 显示的连接ip是十六进制的,有时候需要根据ip杀连接,实在是麻烦,所以我自己写了两个bash函数:
hex2dec()
{
echo $((16#${1:0:2})).$((16#${1:2:2})).$((16#${1:4:2})).$((16#${1:6:2}))
}
db2who()
{
db2 list applications | awk '{print $4}'| awk -F'.' '/^C/{print $1}' > ./tmp.$$1
for i in `cat ./tmp.$$1`
do
hex2dec $i >> ./tmp.$$2
done
unset i
sort -d ./tmp.$$2 | uniq -c | sort -n
echo "Total :" `cat ./tmp.$$2 | wc -l`
rm ./tmp.$$1 ./tmp.$$2
}
dec2hex()
{
echo $1 | awk -F'.' '{printf "%02X%02X%02X%02X\n",$1,$2,$3,$4}'
}
db2kick()
{
HEX=`dec2hex $1`
db2 list applications | grep $HEX | awk '{print $3}' > ./tmp.$$1
for i in `cat ./tmp.$$1`
do
db2 "force application($i)"
let j+=1
done
echo " $j connections have been signaled."
unset i j HEX
rm ./tmp.$$1
}
我对db2和shell都只有粗浅的了解,不知各位有没有更好的解决办法,写这种函数也挺难看的
[[i] 本帖最后由 xn_sung 于 2007-12-29 16:44 编辑 [/i]]
2007-8-31 16:27
fck
请问哪一列是ip?
2007-8-31 16:37
xn_sung
abc db2jcc_applica 429 C0A8008D.EC15.070831042245 wed 1
C0A8008D,这个就是IP了。。。
2007-8-31 20:32
beginner-bj
snapshot里能看到十进制的IP
2007-8-31 20:33
seven
哈哈,不错的,那个hex2dec的函数写的不错!
我当初还没搞定shell写hex 2 dec的转换,只好用c写了个。
需要注意的是:
When the hexadecimal versions of the IP address or port number begin with 0-9, they are changed to G-P respectively. For example, "0" is mapped to "G", "1" is mapped to "H", and so on.
就是说:0-9对于与G-P
转换的时候要注意一下
2007-9-3 08:56
xn_sung
[quote]原帖由 [i]seven[/i] 于 2007-8-31 20:33 发表 [url=http://www.loveunix.com/redirect.php?goto=findpost&pid=715377&ptid=76337][img]http://www.loveunix.com/images/common/back.gif[/img][/url]
哈哈,不错的,那个hex2dec的函数写的不错!
我当初还没搞定shell写hex 2 dec的转换,只好用c写了个。
需要注意的是:
When the hexadecimal versions of the IP address or port number begin with 0-9 ... [/quote]
版主老大,没太明白,怎么出来GP了呢?
2007-9-4 14:06
beginner-bj
[quote]原帖由 [i]xn_sung[/i] 于 2007-9-3 08:56 发表 [url=http://www.loveunix.net/discuz/redirect.php?goto=findpost&pid=716155&ptid=76337][img]http://www.loveunix.net/discuz/images/common/back.gif[/img][/url]
版主老大,没太明白,怎么出来GP了呢? [/quote]
你把机器的IP改成9.*.*.*,再试试看
2007-9-4 18:24
xn_sung
哦!呵呵。多谢版主指点,由于我这个db2只是个内网测试用的服务器,所以只考虑了192.168.×.×呵呵
2007-9-4 22:37
beginner-bj
[quote]原帖由 [i]xn_sung[/i] 于 2007-9-4 18:24 发表 [url=http://bbs.loveunix.net/redirect.php?goto=findpost&pid=716933&ptid=76337][img]http://bbs.loveunix.net/images/common/back.gif[/img][/url]
哦!呵呵。多谢版主指点,由于我这个db2只是个内网测试用的服务器,所以只考虑了192.168.×.×呵呵 [/quote]
那你能不能把hex2dec()给写完善了呢?:D
2007-9-5 10:23
xn_sung
可以,但是好像五、六行都搞不定了,我在想想有没有什么巧妙的方法哈
2007-9-5 13:11
beginner-bj
多加一行tr就好了。
我在ksh下这样
num=M301482C
set -A a `echo $num | tr 'G-P' '0-9' |sed 's/../ &/g'`
echo $((16#${a[0]})).$((16#${a[1]})).$((16#${a[2]})).$((16#${a[3]}))
AIX5.2 ksh不支持 ${num:0:2} 这样的用法
2007-9-5 13:29
xn_sung
一时没想到用tr哈,版主牛的,尤其是sed 's/../ &/g'`,学习了!
页:
[1]
Powered by Discuz! Archiver 5.5.0
© 2001-2006 Comsenz Inc.