202.102.36.18./21的网络帐号批量注册器号

网络层协议第4章
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
网络层协议
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
近几年网工考试部分试题网络部分
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口Linux系统应用经验总结 | Linux |
_数据库_运维_开发_IT学习_无忧IT学习网
一起学习!一起进步!
Linux系统应用经验总结
浏览: 41 views
1.&&日志类
1.1.& 正常消息流程跟踪
MO消息匹配流程
3种消息类型:MO、MOSR、MO状态报告
2个匹配过程:
1.&&日志类
1.1.& 正常消息流程跟踪
MO消息匹配流程
3种消息类型:MO、MOSR、MO状态报告
2个匹配过程:
&&&&&&&& 1)3与5,匹配点在网关,3发送的fwd包中Msg_id字段表示匹配ID,5接收的fwd包中msg_content字段中带有Msg_id字段,用于匹配,格式请参考点对点互通协议。
&&&&&&&& 2)2与7,匹配点在SMSC,5流程中的MOSR的状态会在7流程中发送给SMSC,实现SMPP协议到点对点协议的互通,2发送的deliver_rsp包中message_id字段表示匹配ID,为十六进制,7发送的submit包中short_message字段带有id字段用于匹配,为十进制,格式&id:IIIIIIIIII sub:SSS& dlvrd:DDD& submit date: YYMMDDhhmm done date:YYMMDDhhmm& stat:DDDDDDD err: E Text:&&&。
MT消息匹配流程
3种消息类型:MT、MTSR、MT状态报告
2个匹配过程:
&&&&&&&& 1)4与5,匹配点在网关,4接收的submint_rsp包中message_id字段表示匹配ID,为十六进制,5接收的deliver包中short_message字段中带有id字段用于匹配,为十进制,格式请参考SMPP3.3或SMPP3.4协议。
&&&&&&&& 2)1与7,匹配点在SMG,5流程中的MTSR的状态会在7流程中发送给SMG,实现点对点协议到SMPP协议的互通,1接收的fwd包中message_id字段表示匹配ID,7发送的fwd包中msg_content字段带有id字段,用于匹配,格式请参考点对点互通协议。
1.2.& 流速统计
常用流速统计脚本
#!/bin/awk -f
&&&&&&&FS=&:&;
&&&&&&&mo=0; mosr=0; srmo=0; mt=0; mtsr=0; srmt=0;
&&&&&&&date=&&; hour_old=&&; min_old=&&;second_old=&&;
&&&&&&&print&—————————————————————————————-&;
&&&&&&&print &发送时间\t\t\tMO\tMOSR\tSRMO\tMT\tMTSR\tSRMT&;
&&&&&&&print&—————————————————————————————-&;
&&&&&&&if (NF & 2)
&&&&&&&date=substr($1,2,10);
&&&&&&&hour_new=substr($1,13,2);
&&&&&&&min_new=substr($2,1,2);
&&&&&&&second_new=substr($3,1,2);
&&&&&&&if(hour_new==hour_old && min_new==min_old ) {
&&&&&&&&&&&&&&& if($6~/接收MO成功/) mo+=1;
&&&&&&&&&&&&&&& if($6~/发送MT成功/) mt+=1;
&&&&&&&&&&&&&&& if($6~/接收MTSR成功/) mtsr+=1;
&&&&&&&&&&&&&&& if($6~/发送SRMO成功/) srmo+=1;
&&&&&&&else{
&&&&&&&&&&&&&&& if (hour_old != &&)print date&&hour_old&:&min_old&:&second_old&\t\t&mo&\t&mosr&\t&srmo&\t&mt&\t&mtsr&\t&
&&&&&&&&&&&&&&& hour_old=hour_min_old=min_ second_old=second_
&&&&&&&&&&&&&&& mo=0; mosr=0; srmo=0; mt=0;mtsr=0; srmt=0;
&&&&&&&&&&&&&&& if(hour_new==hour_old&& min_new==min_old ) {
&&&&&&&&&&&&&&&&&&&&&&& if($6~/接收MO成功/) mo+=1;
&&&&&&&&&&&&&&&&&&&&&&& if($6~/发送MT成功/) mt+=1;
&&&&&&&&&&&&&&&&&&&&&&& if($6~/接收MTSR成功/) mtsr+=1;
&&&&&&&&&&&&&&&&&&&&&&& if($6~/发送SRMO成功/) srmo+=1;
&&&&&&&&&&&&&&& }
&&&&&&&print date&&hour_old&:&min_old&:&second_old&\t\t&mo&\t&mosr&\t&srmo&\t&mt&\t&mtsr&\t&
&&&&&&&print &第一秒和最后一秒统计分析因记录不全,可能不准!&
统计某个网元的流速
grep 发送MT成功*SMSC*.log|grep |grep 17:21:40 |wc -l
grep 接收MTSR成功*SMSC*.log|grep |grep 17:21:40 |wc -l
这样就可以统计出该网元是否正常回复状态报告,多个核心模块都需要进行统计。
1.3.& 积压量统计
按网元组织队列
& 17:23:52:5900001)INFO&:|___________________________________
& 17:23:52:5900001)INFO&:| Total message in core:&&&&[0]
& 17:23:52:5900001)INFO&:| total msg in trashbox:&&&&[0]
& 17:23:52:5900001)INFO&:| total SR& in M&&&&& :&&&&[0]
& 17:23:52:5900001)INFO&:| mosr pending is:&&&&&&&&&&[0]
& 17:23:52:5900001)INFO&:| [MT] remain expired_idx:&&[0]
& 17:23:52:5900001)INFO&:| [MT] remain msgid_idx:&&&&[0]
& 17:23:52:5900001)INFO&:| [MO] remain expired_idx:&&[0]
& 17:23:52:5900001)INFO&:| [MO] remain msgid_idx:&&&&[0]
& 17:23:52:59 00001)INFO&:|[CACHE] total msg in cache [0]
& 17:23:52:5900001)INFO&:| [LOG]msg in logfile_pool:&&&&&&[55]
& 17:23:52:5900001)INFO&:|___________________________________
& 17:23:52:5900001)INFO&:| total msg in smsc(202442):MT[0],MOSR[0]
& 17:23:52:5900001)INFO&:| total msg in smsc(202443):MT[0],MOSR[0]
& 17:23:52:5900001)INFO&:| total msg in smsc(202441):MT[0],MOSR[0]
& 17:23:52:5900001)INFO&:| total msg in smsc(202412):MT[0],MOSR[0]
& 17:23:52:5900001)INFO&:| total msg in smsc(202421):MT[0],MOSR[0]
& 17:23:52:5900001)INFO&:| total msg in smsc(202411):MT[0],MOSR[0]
& 17:23:52:5900001)INFO&:| total msg in smsc(202431):MT[0],MOSR[0]
& 17:23:52:5900001)INFO&:| total msg in smsc(202413):MT[0],MOSR[0]
& 17:23:52:5900001)INFO&:| total msg in smsc(202422):MT[0],MOSR[0]
& 17:23:52:5900001)INFO&:| total msg in smsc(202423):MT[0],MOSR[0]
& 17:23:52:5900001)INFO&:| total msg in smsc(202432):MT[0],MOSR[0]
& 17:23:52:5900001)INFO&:| total msg in smsc(202433):MT[0],MOSR[0]
& 17:23:52:5900001)INFO&:| total msg in smg(002404):MO[0],MTSR[0]
& 17:23:52:5900001)INFO&:| total msg in SR(SR3):MO[0],MT[0],SR[0]
& 17:23:52:5900001)INFO&:| total msg in SR(SR1):MO[0],MT[0],SR[0]
& 17:23:52:5900001)INFO&:| total msg in SR(SR2):MO[0],MT[0],SR[0]
& 17:23:52:5900001)INFO&:|___________________________________
采用按网元组织队列结构能够清楚的发现哪个外部网元异常。
按消息类型组织队列
& 16:46:50:75:16)INFO&:[采集]:___________________________________
&6:47:20:75:16)INFO&: [采集]:(M01)MO[1880],MT[0],SR[0],TOTAL[1880]
&6:47:20:75:16)INFO&: [采集]:MO[0]
&6:47:20:75:16)INFO&: [采集]:SMG(1)(104301)MO[0],MTSR[0],SEND[0],RECV[0]
&6:47:20:75:16)INFO&: [采集]:MT[0]
&6:47:20:75:16)INFO&: [采集]:SMSC(1)()MT[0],MOSR[0],SEND[0],RECV[0]
&6:47:20:75:16)INFO&: [采集]:SMSC(2)()MT[0],MOSR[0],SEND[0],RECV[0]
&6:47:20:75:16)INFO&: [采集]:SMM(1)MO[0],MT[0],SEND[0]
&6:47:20:75:16)INFO&: [采集]:CR(1)MO[1880],MT[0],SR[0],SEND[0]
&6:47:20:75:16)INFO&: [采集]:TRASH[0],RETRANS[0],CACHE[0],LOGFILE[0]
&6:47:20:75:16)INFO&: [采集]:RRULE(0) [0]
&6:47:20:75:16)INFO&: [采集]:RRULE(1) [0]
&6:47:20:75:16)INFO&: [采集]:RRULE(99) [0]
&6:47:20:75:16)INFO&: [采集]:___________________________________
采用按消息类型组织队列具有明显优势,所有同类型外部网元共享队列,只要有一个网元正常就不会造成消息积压。
1.4.& 单模块性能不足问题
由于现网模块部署在各种不同平台下,春节期间经常会出现T2000的机器上出现消息积压,而HP刀片上运行正常,
此时,最简单的处理方法是减少T2000平台的对外连接,可以通过动态更新指定模块功能实现。
2.&&脚本类
2.1.& .cshrc脚本解析
set filec&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& #添加该定义后可以按&esc&键补全文件名
setenv EDITOR vi&&&&&&&&&&&&& #定义crontab编辑器
setenv TIMEZONE 'CST'& #定义时区
setenv LANG 'zh'&&&&&&&&&&&&&& #定义本地语言
setenv LC_ALL 'zh'&&&&&&&&&&& #定义本地语言,它们之间优先级的关系:LC_ALL & LC_* &LANG
setenv NLS_LANG 'Simplified Chinese'&&&&&&&&&&&&&&&&&&&&&& #以下3项为入库编码方式
setenv NLS_CHARACTERSET 'ZHS16CGB;
setenv NLS_NCHAR_CHARACTERSET&& 'ZHS16CGB;
setenv MIBS ALL&&&&&&&&&&&&&& #snmp库告警用
set path = ( /usr/bin /usr/local/bin/usr/sfw/bin )&& #sparc+Solaris
set path = ( /usr/sfw/bin /usr/bin /usr/local/bin)&& #x86+Solaris,x86平台下需要用usr/sfw/bin下面的软件
另外,项目相关的环境变量,建议以PROJECT为根进行设置
2.2.& .bashrc脚本解析
export TERM=''&&&&&&&&&&&&&&&&& #定义终端类型,可以带颜色
export EDITOR='vim'&&&&&&&&&&&&&&&& #定义crontab编辑器
export TIMEZONE='CST'&&&&&&&&&& #定义时区
export LANG='zh_CN.GB2312'&&&&&&& #定义本地语言
export LC_ALL='zh_CN.GB2312'&&&& #定义本地语言,它们之间优先级的关系:LC_ALL& LC_* &LANG
export NLS_LANG='Simplified Chinese'&&&&&&&&&&&&&&&&&&&&& #以下3项为入库编码方式
export NLS_CHARACTERSET='ZHS16CGB;
exportNLS_NCHAR_CHARACTERSET='ZHS16CGB;
export MIBS=ALL&&&&&&&&&&&&& #snmp库告警用
另外,项目相关的环境变量,建议以PROJECT为根进行设置
2.3.& crontab定时任务
crontab命令格式:M H D m d cmd(分 时 日 月 周 命令)
M: 分钟(0-59)。
H:小时(0-23)。
D:天(1-31)。
m: 月(1-12)。
d: 一星期内的天(0~6,0为星期天)
crontab file [-u user]-用指定的文件替代目前的crontab.
crontab-[-u user]-用标准输入替代目前的crontab.
crontab-1[user]-列出用户目前的crontab.
crontab-e[user]-编辑用户目前的crontab.
crontab-d[user]-删除用户目前的crontab.
crontab-c dir- 指定crontab的目录.
crontab文件的一些例子:
30 21 * * * /usr/local/etc/rc.d/lighttpdrestart
上面的例子表示每晚的21:30重启。
45 4 1,10,22 * */usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、10、22日的4 : 45重启。
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpdrestart
上面的例子表示每周六、周日的1 : 10重启。
0,30 18-23 * * */usr/local/etc/rc.d/lighttpd restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启。
0 23 * * 6 /usr/local/etc/rc.d/lighttpdrestart
上面的例子表示每星期六的11 : 00 pm重启。
* */1 * * * /usr/local/etc/rc.d/lighttpdrestart
每一小时重启
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpdrestart
晚上11点到早上7点之间,每隔一小时重启
0 11 4 * mon-wed/usr/local/etc/rc.d/lighttpd restart
每月的4号与每周一到周三的11点重启
0 4 1 jan * /usr/local/etc/rc.d/lighttpdrestart
一月一号的4点重启
2.4.& FTP上传话单标准做法
作用:以临时文件方式上传文件,完毕后改回原名
缺点:当异常时,可能会造成文件丢失
#!/bin/bash
IP=10.10.18.8
USER=com30
PASSWD=com30
&&&&&&&& ftp-n $IP &&END_SCRIPT
&&&&&&&& quoteUSER $USER
&&&&&&&& quotePASS $PASSWD
&&&&&&&& cd./nm
&&&&&&&& bin
&&&&&&&& put$1 $2
&&&&&&&& rename$2 $1
&&&&&&&& quit
&&&&&&&& END_SCRIPT
&&&&&&&& echo&ftp& $1 $2&& ftp.log
file_list=`find . -name &*.CDR&-type f |sort`
for file in $file_list
&&&&&&&& if[ "${file##*.}" = "CDR" ]
&&&&&&&& tmp_file=${file/%&CDR&/&tmp&}
&&&&&&&& myftp$file $tmp_file
&&&&&&&& mv$file ../boss
2.5.& 批量修改文件内容
作用:用于批量修改目录下所有文件中指定的内容
#!/bin/bash
file_list=`find $1 -name &*.c& -typef `
for fn in $file_list
&&&&&&&ffnt=&$fn.temp&
&&&&&&&echo &Processing $fn …… &
&&&&&&&sed &s/$2/$3/g& $fn & $ffnt
&&&&&&&mv -f $ffnt $fn&&&&&&&&
2.6.& 批量删除SHM共享内存
作用:由于ipcrm命令不支持多个一起删除功能,需要用脚本实现
ipcs -m|grep $USER|awk '{print $2}'|xargs-t -I{} ipcrm -m {}
2.7.& 输出2个文本文件中相同的行
作用:用于比较乱序的话单文件
awk&-F, 'NR==FNR{a[$0]==$0} NR!=FNR{if($0 in a){print}}'& file1 file2
3.&&连接类
3.1.& 带宽计算方法
TCP包头:54字节
MO/MT消息包+确认包:313字节+54字节=367字节
应答包+确认包:23字节+54字节=77字节
MO/MT状态报告包+确认包:233字节+54字节=287字节
专线带宽理论最大计算方法
假设:峰值时MO和MT各一半
OUT:(峰值/2)*(367+54+ 77+54 + 77+54 + 287+54)*8/
IN :(峰值/2)*(77+54+ 287+54 + 367+54 + 77+54)*8/
总结:1000条/秒需要4M专线
专线带宽理论最小计算方法
(1)所有的确认包都与后续消息包合并
(2)消息内容字段采用最大值140字节的中间值70
计算如下:
OUT:(峰值/2)*(367 +77 + 77+ 287 &#/
IN :(峰值/2)*(77 +287 + 367 + 77 &#/
总结:1000条/秒需要2.8M带宽
(1)现网普遍带宽部署要比理论小是因为:
& a)消息包中内容字段按140字节计算,实际值会小一些,但是不太多。
&b)1.b确认包可以与1.c消息包合并,但是是否合并由操作系统根据发包速度决定,计算带宽时最好分开计算。
(2)TCP包头大小并非固定54字节,有的设备包含校验码就会大一些,例如河南网关TCP包头为66字节。
(3)总结:500条/秒& & 2M专线最大消息速度 & 714条/秒
3.2.& Solaris系统下采用snoop抓包
文本命令格式:snoop& -ta& -x54& [hostip地址] and [port 端口号]
二进制命令格式:snoop& -ta& -x54& [hostip地址] and [port 端口号]& -o snoop.cap
注:一般情况下链路层14字节,IP层20字节,TCP层20字节,所以snoop抓包时偏移54字节不输出TCP头部,
但是有的省份TCP层包含校验码长度可能会较多,例如河南TCP层就是32字节,
另外,Solaris与间通信是偏移量也是66字节。
当然也可以采用全部显示的方式:snoop& -ta& -x0& [hostip地址] and [port 端口号]
Solaris与Solaris通信
10:35:57.85118&&&& Intel-01 -& 10.10.125.94 TCP D=4 Push Ack= Seq= Len=67 Win=49640
&&&&&&&&&&0: 00 00 &&& …C…………
&&&&&&&&&16: 32 30 &&& &#0000..
&&&&&&&&&32: 30 34 &&& .….
&&&&&&&&&48: 00 0c65 e06c d562 535f 0096&&& …….e.l.bS_..
&&&&&&&&&64: 1f52 17&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& .R.
以上为应用层内容,本例中是SMPP协议包。
Solaris与Linux通信
10:32:30.82028&&&& Intel-01 -& 10.10.126.182 TCP D=1 Push Ack= Seq= Len=73 Win=49232 Options=&nop,nop,tstamp9347037&
&&&&&&&&&&0:&d6e 59fb 37fd 4c5d&&&& …..nY.7.L]…I
&&&&&&&&&16: 00 59 &&& ………..Y…1
&&&&&&&&&32: 34 00 &&& &#
&&&&&&&&&48: 32 01 &&& 30;…..
&&&&&&&&&64:
e06c d562 535f 00&&& …e.l.bS_..C.D.
&&&&&&&&&80:
17&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& R..R.
红色12个字节多余
3.3.& 下采用tcpdump抓包
文本命令格式:tcpdump& [host ip地址] and [port端口]& -X& -s 0
二进制命令格式:tcpdump& [host ip地址] and [port端口]& -X& -s 0&-w tcpdum.cap
注:抓本机回环地址的包可以用:tcpdump& -i lo& port 端口& -X& -s0
10:18:30.496739 IP 10.10.125.92.gyang-m-smsc& .28713: P :(73) ack
win 49232&nop,nop,timestamp 7906636&
&&&&&&&0×0000:& 87 b2cd 0a0a 7d5c& E..}x.@.?…..}\
&&&&&&&0×0010:& 0a0a 7eb6 1c28 d05 ae32 45e7& ..~..(p)…..2E.
&&&&&&&0×0020:&
fe10 0a 0d6c 275d& …P………l']
&&&&&&&0×0030:& 37e7 51cc 0 0000& 7.Q….I……..
&&&&&&&0×0040:& 00 2 & …&#400
&&&&&&&0×0050:& 31 0 & 86&#1234
&&&&&&&0×0060:& 00 5 e06c d562& ………..e.l.b
&&&&&&&0×0070:& 535f 00 &&&&&&&& S_..C.D.R..R.
3.4.& 丢包典型案例
一般情况下判断问题可以用ping命令定期发送大包测试丢包率,
也可以通过抓包提供更直接有利的证据。
9:37:19..83.254 -&SXTY-PS-ISMG-SV-LTAPP01 TCP D=28122 S=52951 Push Ack= Seq=Len=313 Win=65535
&&&&&&&&&&&0: 00 b e9de &&& ..?.1035
&&&&&&&&&&16: 31 fcb c901 fbd1&&& ..?…..
&&&&&&&&&&32: ea7a 00 00 0000&&& .z…………..
&&&&&&&&&&48: 00 00 &&& …………….
&&&&&&&&&&64: 00 00 &&& ……………0
&&&&&&&&&&80: 00 0&&& 2……………
&&&&&&&&&&96: 00 00 &&& …………….
&&&&&&&&112: 00 31 &&& ……&#
&&&&&&&&128: 35 00 &&& 30;……8
&&&&&&&&144: 34 34 &&& ….
&&&&&&&&160: c00 00 &&& ….?4g..1.9.-.
&&&&&&&&176: 2d00
e54e cb4f 115f &&& -.2.1e.N.O._ Qpe
&& &&&&&&192: b065 e575 65 b06b 3e5c5579&&& .e.u5R?fe.k&\Uy
&&&&&&&&208: 3a66 a84e e565 e763 91 cd54&&& :f∟.e.cbe…..T
&&&&&&&&224: 2f52 a830 e63 628d 2d4e f700&&& /R?.g.ONcb.-N..
&&&&&&&&240: 00 2c65 e764 52&&& 9.8.9.,e.dibXu5R
&&&&&&&&256: a862 00
e75b b675&&& ╞..1.0.0.0e.[.u
&&&&&&&&272:
3a62 00 &&& 5bKg:b..6.0.00.W
&&&&&&&&288: 51
ae65 3f5c 4065&&& 0W@_ QpS…e?\@e
&&&&&&&&304: c100 00 00&&&&&&&&&&&&&&&&&&&& ………
9:37:19.94052 SXTY-PS-ISMG-SV-LTAPP01 -&211.90.83.254 TCP D=52951 S=28122 Push Ack= Seq= Len=23Win=49640
&&&&&&&&&&&0: 00 b e9de 3fcb c901&&& ………?.?…
&&&&&&&&&&16: fbd1 ea7a 0101 00&&&&&&&&&&&&&&&&&&&&&&&&& …z…
9:37:20..83.254 -&SXTY-PS-ISMG-SV-LTAPP01 TCP D=28122 S=52951 Push Ack= Seq=Len=233 Win=65535
&&&&&&&&&&&0:
e8b 35&&& ………?a1035
&&&&&&&&&&16: 31 fcb c901 fc03&&& ..?…..
&&&&&&&&&&32: ea83 00 00 0000&&& …………….
&&&&&&&&&&48: 00 00 &&& …………….
&&&& &&&&&&64: 00 00 &&& ……………0
&&&&&&&&&&80: 00 00 &&& 2……………
&&&&&&&&&&96: 00 00 &&& …………….
&&&&&&&&112: 00 35 &&& ……&#
&&&&&&&&128: 00 00 &&& ;……..1
&&&&&&&&144: 36 00 &&& ……
&&&&&&&&160: c49
c00f c044 454c&&& ….&I&T…..DEL
&&&&&&&&176: 33 39 &&& IVRD
&&&&&&&&192: 39 33 &&& 6022
&&&&&&&&208: 00 00 &&& 778………..?
&&&&&&&&224: ea00 00 00&&&&&&&&&&&&&&&&&&&& ………
9:37:20.02162 SXTY-PS-ISMG-SV-LTAPP01 -&211.90.83.254 TCP D=52951 S=28122 Push Ack=Seq=Len=23 Win=49640
&&&&&&&&&&&0: 00 b 9061 3fcb c901&&& ………?a?…
&&&&&&&&&&16: fc03 ea83 0101 00&&&&&&&&&&&&&&&&&&&&&&&&& …….
9:37:20..83.254 -&SXTY-PS-ISMG-SV-LTAPP01 TCP D=28122 S=52951 Ack= Seq=&Len=1460 Win=65535
&&&&&0: 00 a 35&&& …#……..1035
&&&&16: 31 fcb c901 fbd1&&& ..?…..
&&&&32: ea8c 00 00 0000&&& .?………….
&&&&48: 00 00 & &&…………….
&&&&64: 00 00 &&& …….@…….0
&& 00 090e 8bf9 &&& ….#…..?.103
//这条消息是不完整的,后面没有继续&&&&&&&&&&&&&&&&&&&&&&&
&& 30 f cbc9 01fb&&& ..?….
&&1424: d1ea ba01 00 00&&& …………….
&& 00 00 0000&&& …………….
&& 0000&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ….
9:37:20.05827 SXTY-PS-ISMG-SV-LTAPP01 -&211.90.83.254 TCP D=52951 S=28122 Ack=&Seq=Len=0 Win=48180
9:37:20..83.254 -&SXTY-PS-ISMG-SV-LTAPP01 TCP D=28122 S=52951 Ack= Seq=&Len=1460 Win=65535
//发送端丢包,没有继续使用seq=,中间丢了702个字节
&&&&&0: 00 b 860b &&& …-…..?.1035
&&&&16: 31 fcb c901 fbd1&&& ..?…..
&&&&32: ead5 00 00 0000&&& …………….
&&&&48: 00 00 &&& …………….
&&&&64: 00 00 &&& …….@…….0
&&&&80: 00 00 &&& 2……………
&&&&96: 00 00 &&& …………….
省略…
&& 00 090e 8c0d &&& ……….?.103
&& 30 f cbc9 01fc&&& ..?….
&&1328: 03eb 00 00 0000&&& …………….
&& 00 00 0000& &&…………….
&& 00 00 0000&&& …………….
&& 00 00 0000&&& 02…………..
&& 00 00 0000&&& …………….
&& 00 39 3337&&& ……&#
&& 00 00 0001&&& 6;……..
&& 38 00 0000&&& …..
&& 0000&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ….
9:37:20.36156 SXTY-PS-ISMG-SV-LTAPP01 -&211.90.83.254 TCP D=52951 S=28122 Push Ack=Seq= Len=115 Win=49640
//网关一直在等待后续的包
&&&&&0: 00 a 9283 3fcb c901&&& …………?…
&&&&16: fbd1 ea8c 00 0e&&& …?………..
&&&&32: 8be4 913f cbc9 01fb d1ea 00&&& ?.?…………
&&&&48: 09 0e8b f810 3fcb c901 fbd1&&& …….?.?…..
&&&&64: eaa0 00 0e 8bda&&& .?………..?
&&&&80: e13f cbc9 01fb d1ea 9e01 17&&& .?……?……
&&&&96: e8b eca4 3fcb c901 fbd1 eab1&&& …..嬱?…….
&&112: 0101 00&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& …
9:37:20.36160 SXTY-PS-ISMG-SV-LTAPP01 -&211.90.83.254 TCP D=52951 S=28122 Ack=Seq= Len=0 Win=49640
//网关一直在等待后续的包
9:37:20..83.254 -&SXTY-PS-ISMG-SV-LTAPP01 TCP D=28122 S=52951 Push Ack= Seq=Len=881 Win=65535
&&&&&0: 003c c0 c49 5652&&& .&I&S…..DELIVR
&&&&16: 31 31 &&& D041
&&&&32: 31 36 &&& 8981
&&&&48: 00 47 ef5d 0000&&& ………..G.]..
&&&&64: 00
e8b &&&……………?
&&&&80: 91df 31 32 0102&&& ....
省略….
9:37:20.56908 SXTY-PS-ISMG-SV-LTAPP01 -&211.90.83.254 TCP D=52951 S=28122 Ack=Seq= Len=0 Win=49640
//网关一直在等待后续的包
9:37:25.12164 SXTY-PS-ISMG-SV-LTAPP01 -&211.90.83.254 TCP D=52951 S=28122&RstSeq= Len=0 Win=49640
//5秒超时后断开连接
注:判断哪一方先断连的依据是谁发送的Fin包或Rst包。
3.5.& 监听重要工具netstat
常用命令:
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。
[comm1@com182 bin]$ netstat -a
Active Internet connections (servers andestablished)
Proto Recv-Q Send-Q Local Address&&&&&&&&&&&&&& Foreign Address&&&&&&&&&&&& State&&&&&
tcp&&&&&&&0&&&&& 0localhost.localdomain:2208& *:*&&&&&&&&&&&&&&&&&&&&&&&& LISTEN&&&&&
tcp&&&&&&&0&&&&& 0 *:dlip&&&&&&&&&&&&&&&&&&&&& *:*&&&&&&&&&&&&&&&&&&&&&&&& LISTEN&&&&&
tcp&&&&&&&0&&&&& 0 *:nfs&&&&&&&&&&&&&&&&&&&&&& *:*&&&&&&&&&&&&&&&&&&&&&&&& LISTEN&&&&&
tcp&&&&&&&0&&&&& 0 *:834&&&&&&&&&&&&&&&&&&&&&& *:*&&&&&&&&&&&&&&&&&&&&&&&& LISTEN&&&&&
tcp&&&&&&& 0&&&&&0 *:gyang-smg&&&&&&&&&&&&&&&&*:*&&&&&&&&&&&&&&&& &&&&&&&&LISTEN&&&&&
[comm1@com182 bin]$ netstat -an
Active Internet connections (servers andestablished)
Proto Recv-Q Send-Q Local Address&&&&&&&&&&&&&& Foreign Address&&&&&&&&&&&& State&&&&&
tcp&&&&&&&0&&&&& 0 127.0.0.1:2208&&&&&&&&&&&&& 0.0.0.0:*&& &&&&&&&&&&&&&&&&LISTEN&&&&&
tcp&&&&&&&0&&&&& 0 0.0.0.0:7201&&&&&&&&&&&&&&& 0.0.0.0:*&&&&&&&&&&&&&&&&&& LISTEN&&&&&
tcp&&&&&&&0&&&&& 0 0.0.0.0:2049&&&&&&&&&&&&&&& 0.0.0.0:*&&&&&&&&&&&&&&&&&& LISTEN&&&&&
tcp&&&&&&&0&&&&& 0 0.0.0.0:834&&&&&&&&&&&&&&&& 0.0.0.0:*&&&&&&&&&&&&&&&&&& LISTEN&&&&&
tcp&&&&&&& 0&&&&&0 0.0.0.0:7203&&&&&&&&&&&&&&&0.0.0.0:*&&&&&&&&&&&&&&&&&& LISTEN&&&&&
[comm1@com182 bin]$ netstat -anp
(Not all processes could be identified,non-owned process info
&willnot be shown, you would have to be root to see it all.)
Active Internet connections (servers andestablished)
Proto Recv-Q Send-Q Local Address&&&&&&&&&&&&&& Foreign Address&&&&&&&&&&&& State&&&&&& PID/Program name&&
tcp&&&&&&&0&&&&& 0 127.0.0.1:2208&&&&&&&&&&&&& 0.0.0.0:*&&&& &&&&&&&&&&&&&&LISTEN&&&&& -&&&&&&&&&&&&&&&&&&
tcp&&&&&&&0&&&&& 0 0.0.0.0:7201&&&&&&&&&&&&&&& 0.0.0.0:*&&&&&&&&&&&&&&&&&& LISTEN&&&&& 31158/com&&&&&&&&&
tcp&&&&&&&0&&&&& 0 0.0.0.0:2049&&&&&&&&&&&&&&& 0.0.0.0:*&&&&&&&&&&&&&&&&&& LISTEN&&&&& -&&&&&&&&&&&&&&&&&&
tcp&&&&&&&0&&&&& 0 0.0.0.0:834&&&&&&&&&&&&&&&& 0.0.0.0:*&&&&&&&&&&&&&&&&&& LISTEN&&&&& -&&&&&&&&&&&&&&&&&&
tcp&&&&&&& 0&&&&&0 0.0.0.0:7203&&&&&&&& &&&&&&&0.0.0.0:*&&&&&&&&&&&&&&&&&& LISTEN&&&&& 31171/com&&&&&&&&&
LN-HTSMG-APP6&comm1&1:netstat -rn
Routing Table: IPv4
&Destination&&&&&&&&&& Gateway&&&&&&&&&& Flags& Ref&&&&Use&&&& Interface
——————– ————————- —– ———- ———
default&&&&&&&&&&&&& 10.34.29.129&&&&&&&& UG&&&&&&& 1&&&&&45869&&&&&&&&&&
10.34.29.128&&&&&&&& 10.34.29.155&&&&&&&& U&&&&&&&& 1&&&5515387 bge0&&&&&
10.34.29.128&&&&&&&& 10.34.29.155&&&&&&&& U&&&&&&&& 1&&&&&&&&& 0 bge0:1&&&
10.34.29.128&&&&&&&& 10.34.29.155&&&&&&&& U&&&&&&&& 1&&&&&29745 bge1&&&&&
10.64.79.25&&&&&&&&& 10.34.29.134&&&&&&&& UGH&&&&&& 1&&&&&&&&40&&&&&&&&&&
10.66.254.128&&&&&&& 10.34.29.134&&&&&&&& UG&&&&&&& 1&&&&&&&&&0&&&&&&&&&&
10.77.9.10&&&&&&&&&& 10.34.29.134&&&&&&&& UGH&&&&&& 1&&&&&&&&66&&&&&&&&&&
10.77.9.30&&&&&&&&&& 10.34.29.134&&&&&&&& UGH&&&&&& 1&&&&&&&&86&&&&&&&&&&
10.77.9.50&&&&&&&&&& 10.34.29.134&&&&&&&& UGH&&&&&& 1&&&&&&&&47&&&&&&&&&&
10.77.9.70&&&&&&&&&& 10.34.29.134&&&&&&&& UGH&&&&&& 1&&&&&&&&38&&&&&&&&&&
192.168.250.1&&&&&&& 192.168.250.2&&&&&&& UH&&&&&&& 1&&&&&&&&& 1 sppp0&&&&
127.0.0.1&&&&&&&&&&& 127.0.0.1&&&&&&&&&&& UH&&&&&&& 3&&&&&81466 lo0&&&&&&
U 该路由可以使用
G 该路由是到一个网关(路由器)。如果没有设置该标志,说明目的地址是直接相连的。
H 该路由是到一个主机。如果没有设置该标志,说明该路由是到一个,而目的地址是一个地址:号,或者号与子网号的组合。
4.&&进程管理类
4.1.& Make编译程序
Make程序的版本必须是GNU Make 3.81
高版本的Make与目前的核心程序不兼容
t2000-2&g-yang&:make -v
GNU Make 3.81
Copyright (C) 2006& Free Software Foundation, Inc.
T see the source forcopying conditions.
There is NO not even forMERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
This program built forsparc-sun-solaris2.10
4.2.& Gdb调试
常用的gdb命令:
backtrace(bt)&& 显示程序中的当前位置和表示如何到达当前位置的栈跟踪(同义词:where)
breakpoint(b)&& 在程序中设置一个断点
cd&&&& &&&&&&&&&&&&&&&&&& 改变当前工作目录
clear&&&&&&&& &&&&&&&& 删除刚才停止处的断点
commands&&&&&& 命中断点时,列出将要执行的命令
continue(c)&&&&&& 从断点开始继续执行
delete&&&&&& &&&&&&&& 删除一个断点或监测点;也可与其他命令一起使用
display&&&&& &&&&&&&& 程序停止时显示变量和表达时
down&&&&&&& &&&&&&&& 下移栈帧,使得另一个函数成为当前函数
frame&&&&&& &&&&&&&& 选择下一条continue命令的帧
info& &&&&&&&&&&&&&&&&&& 显示与该程序有关的各种信息
jump&&&&&&&& &&&&&&&& 在源程序中的另一点开始运行
kill&&& &&&&&&&&&&&&&&&&&& 异常终止在gdb 控制下运行的程序
list(l)&&&&&&&& &&&&&&&& 列出相应于正在执行的程序的原文件内容
next(n)&&&& &&&&&&&& 执行下一个源程序行,从而执行其整体中的一个函数
print&&&&&&&&& &&&&&&&& 显示变量或表达式的值
pwd &&&&&&&&&&&&&&&&&& 显示当前工作目录
pype&&&&&&&&& &&&&&&&& 显示一个数据结构(如一个结构或C++类)的内容
quit& &&&&&&&&&&&&&&&&&& 退出gdb
reverse-search 在源文件中反向搜索正规表达式
run&& &&&&&&&&&&&&&&&&&& 执行该程序
search&&&&& &&&&&&&& 在源文件中搜索正规表达式
set&& variable给变量赋值
signal&&&&&&& &&&&&&&& 将一个信号发送到正在运行的进程
step(s)&&&&& &&&&&&&& 执行下一个源程序行,必要时进入下一个函数
undisplay display命令的反命令,不要显示表达式
until(u)&&&& &&&&&&&& 结束当前循环
up&&&& &&&&&&&&&&&&&&&&&& 上移栈帧,使另一函数成为当前函数
watch&&&&&& &&&&&&&& 在程序中设置一个监测点(即数据断点)
whatis&&&&& &&&&&&&& 显示变量或函数类型
多线程进程调试
[comm1@com182 bin]$&pstree -p 22147
com(22147)-+-com(22149)—{com}(22157)
&&&&&&&&&&&|-com(22150)-+-{com}(22159)
&&&&&&&&&&&|&&&&&&&&&&&& |-{com}(22160)
&&&&&&&&&&&|&&&&&&&&&&&& |-{com}(22161)
&&&&&&&&&&&|&&&&&&&&&&&& |-{com}(22165)
&&&&&&&&&&&|&&&&&&&&&&&& `-{com}(22166)
&&&&&&&&&&&|-com(22151)
&&&&&&&&&&&|-com(22152)
&&&&&&&&&&&|-com(22153)
&&&&&&&&&&&|-com(22154)—{com}(22167)
&&&&&&&&&&&|-com(22155)
&&&&&&&&&&&|-com(22156)
&&&&&&&&&&&|-com(22158)
&&&&&&&&&&&|-com(22162)-+-{com}(22186)
&&&&&&&&&&&|&&&&&&&&&&&& |-{com}(22188)
&&&&&&&&&&&|&&&&&&&&&&&& |-{com}(22189)
[comm1@com182 bin]$gdb com 22162
GNU gdb (GDB) Red Hat Enterprise Linux(7.0.1-32.el5)
Copyright (C) 2009 Free SoftwareFoundation, Inc.
License GPLv3+: GNU GPL version 3 or later&http://gnu.org/licenses/gpl.html&
This is free software: you are free tochange and redistribute it.
There is NO WARRANTY, to the extentpermitted by law.& Type &showcopying&
and &show warranty& for details.
This GDB was configured as&x86_64-redhat--gnu&.
For bug reporting instructions, please see:
&http://www.gnu.org/software/gdb/bugs/&…
(gdb)&info thread
& 5Thread 0x4f01d940 (LWP 2e1c1 in nanosleep () from /lib64/libpthread.so.0
& 4Thread 0x4fa1e940 (LWP 2e1c1 in nanosleep () from /lib64/libpthread.so.0
& 3Thread 0x (LWP 2e1c1 in nanosleep () from /lib64/libpthread.so.0
& 2Thread 0x50e20940 (LWP 2a541 in nanosleep () from /lib64/libc.so.6
* 1 Thread 0x2b221f846ee0 (LWP 22162)& 0xcacb2e6 in poll () from/lib64/libc.so.6
[Switching to thread 1 (Thread0x2b221f846ee0 (LWP 22162))]#0&0xcacb2e6 in poll () from /lib64/libc.so.6
#0&0xcacb2e6 in poll () from /lib64/libc.so.6
#1&0x7c80 in accessor_run (pipefd=17) at accessor.c:209
#2&0x77c5 in accessor_main (pm=0x1d607050, pipefd=17) ataccessor.c:114
#3&0xa8d40 in core_server_module_startup (cs=0x7fff4ada5490,pchld=0x1d607730, sock=17) at dpl_core_server.c:82
#4&0xa8e21 in dpl_core_server_startup (cs=0x7fff4ada5490) atdpl_core_server.c:122
#5&0xa8e6c in dpl_core_server_run (cs=0x7fff4ada5490,timeout=-1) at dpl_core_server.c:140
#6&0×0380 in mp_run (mode=0) at mp_main.c:127
#7&0x02b6 in main (argc=1, argv=0x7fff4ada56b8) atmp_main.c:102
下跟踪子进程
有些程序启动后直接进入守护进程模式,此时若需要跟踪子进程的运行情况可以使用set follow-fork-mode child
[comm1@com182 bin]$&gdb cms-1.3.2
GNU gdb (GDB) Red Hat Enterprise Linux(7.0.1-32.el5)
Copyright (C) 2009 Free SoftwareFoundation, Inc.
License GPLv3+: GNU GPL version 3 or later&http://gnu.org/licenses/gpl.html&
This is free software: you are free tochange and redistribute it.
There is NO WARRANTY, to the extentpermitted by law.& Type &showcopying&
and &show warranty& for details.
This GDB was configured as&x86_64-redhat--gnu&.
For bug reporting instructions, please see:
&http://www.gnu.org/software/gdb/bugs/&…
Reading symbols from /home/comm1/com3.0/cms/cms-1.3/bin/cms-1.3.2…done.
(gdb)&b read_cfg_and_init
Breakpoint 1 at 0×423094: file cms_init.c,line 100.
(gdb)&setfollow-fork-mode child
Starting program: /home/comm1/com3.0/cms/cms-1.3/bin/cms-1.3.2
warning: no loadable sections found inadded symbol-file system-supplied DSO at 0x2aaaaaaab000
[Thread debugging using libthread_dbenabled]
&_______________________________________________________
&|&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&|
&|&&&&&&&&NEU Common Message-processing System&&&&&&&&& |
&|&&&&&&&&&&&&&&&&&&&& &&&(Ver 1.3)&&&&&&&&&&&&&&&&&&&&& |
&|&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&|
&|&&&Copyright (c) NEU CommTech Co., Ltd. &&&& |
&|&&& AllRights Reserved.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&|
&|_______________________________________________________|
请等待…
系统运行 HOME 路径: [/home/comm1/com3.0/cms/com20_bd_1.3]
[New process 24540]
[Thread debugging using libthread_dbenabled]
[New process 24541]
系统转为后台运行, 进程号[24541].
[Thread debugging using libthread_dbenabled]
[Switching to Thread 0x2aaaac3edcb0 (LWP24541)]
Breakpoint 1, read_cfg_and_init () atcms_init.c:100
100&&&&&&&&&&&& struct dirent&& *dirp = NULL;
函数调用栈中errno覆盖问题
由于errno属于单线程内的静态变量,该变量应该以当前栈顶值f 0的设置为准,在其他栈中打印errno变量的值是无效的。
#0&0x0000003eff4cb2e6 in poll () from /lib64/libc.so.6
#1&0xb6d8a in dpl_milli_poll ()
#2&0xb25a3 in wait_for_io_or_timeout ()
#3&0xb2790 in dpl_socket_send ()
#4&0xab3c2 in dpl_reactor_notify ()
#5&0xed58 in handle_msg_module ()
#6&0x0000003effc0673d in start_thread () from /lib64/libpthread.so.0
#7&0x0000003eff4d40cd in clone () from /lib64/libc.so.6
#3&0xb2790 in dpl_socket_send (socket=17, buf=0x427d409b& &incomplete sequence \321&,len=0x427d4090, timeout=-1)
&&&at dpl_socket.c:254
254&&&&&&&&&&&& arv =wait_for_io_or_timeout(socket, 0, timeout);
229&&&&dpl_status_t&&&dpl_socket_send(dpl_socket_t socket, const char *buf, \
230&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& dpl_size_t*len, dpl_second_t timeout)
232&&&&&&&&&&&& int rv=0;
233&&&&&&&&&&&& dpl_status_t&&&
235&&&&&&&&&&&& do {
236&&&&&&&&&&&&&&&&&&&& errno = 0;
237&&&&&&&&&&&&&&&&&&&& rv = send(socket, buf,(*len), 0);
238&&&&&&&&&&&& } while (rv == -1 && errno== EINTR);
240&&&&&&&&&&&& if(rv & 0){
241&&&&&&&&&&&&&&&&&&&& (*len) =
242&&&&&&&&&&&&&&&&&&&& return DPL_SUCCESS;
243&&&&&&&&&&&& }
244&&&&&&&&&&&& else if(!rv){
245&&&&&&&&&&&&&&&&&&&& (*len) = 0;
246&&&&&&&&&&&&&&&&&&&& return DPL_EOF;
247&&&&&&&&&&&& }else{
248&&&&&&&&&&&&&&&&&&&& if(errno != EAGAIN){
249&&&&&&&&&&&&&&&&&&&&&&&&&&&& (*len) = 0;
250&&&&&&&&&&&&&&&&&&&&&&&&&&&&
251&&&&&&&&&&&&&&&&&&&& }
252&&&&&&&&&&&& }
(gdb) p rv
(gdb) p errno
查看socket接收缓冲区当前缓存字节数
(gdb) p ioctl(4, 0x541B,&numbytes)
&(gdb) p numbytes
&(gdb) p ioctl(4, 0x541B,&numbytes)
&(gdb) p numbytes
&(gdb) p ioctl(4, 0x541B,&numbytes)
&(gdb) p numbytes
&(gdb) p ioctl(4, 0x541B,&numbytes)
&(gdb)p numbytes
&4是需要读取的文件描述符,
&0x541B是固定参数,#defineFIONREAD&&&&&&& 0x541B
&numbytes是当前上下文的临时变量。
4.3.& 进程管理
对于处在阻塞状态或无法恢复状态的进程,可以采用暴力手段将其杀掉,前提是阻塞时不能占用共享锁。
由于子进程一般忽略TERM信号,所以采用kill pid的方式不起作用,需要用kill -9 pid
Solaris进程管理
pstop &&&&&&&&&&&&&& 停止进程
prun pid &&&&&&&&& 重新启动进程
ptime pid &&&&&&& 使用微状态计算进程时间
pwait pid &&&&&&& 等待指定的进程终止
pcred pid&&&&&&&&&& 显示可信度
pfiles pid&&&&&&&&&& 显示已打开文件的
fstat和fcntl&&& 信息
pflags pid&&&&&&&&& 显示每个lwp的/proc跟踪标志,等待和持有信号量以及其他状态信息
pldd pid&&&&&&&&&&&& 显示链接到每个进程的动态链接库
pmap pid&&&&&&&&&& 显示地址映射空间
psig pid&&&&&&&&&&&&& 显示信号操作
pstack pid&&&&&&&& 显示每个lwp的十六进制与符号堆跟踪
ptree pid&&&&&&&&&& 显示包含指定PID的进程树
pwdx oid &&&&&&&& 显示当前工作目录
Solaris查看进程打开描述符
bash-3.00$ pfiles 23926
23926:&com
&Current rlimit: 256 file descriptors
&& 0:S_IFCHR mode:0666 dev:284,0 ino:6815752 uid:0 gid:3 rdev:13,2
&&&&&O_RDWR|O_LARGEFILE
&&&&&/devices/pseudo/mm@0:null
&& 1:S_IFCHR mode:0666 dev:284,0 ino:6815752 uid:0 gid:3 rdev:13,2
&&&&&O_RDWR|O_LARGEFILE
&&&&&/devices/pseudo/mm@0:null
&& 2:S_IFCHR mode:0666 dev:284,0 ino:6815752 uid:0 gid:3 rdev:13,2
&&&&&O_RDWR|O_LARGEFILE
&&&&&/devices/pseudo/mm@0:null
&& 3:S_IFREG mode:0644 dev:30,199 ino:1311017 uid:122 gid:1 size:5
&&&&&O_WRONLY|O_CREAT|O_LARGEFILE
&&&&&advisory write lock set by process 23890
&&&&&/export/home2/g-yang/com2.5.4/com/locks/com20.lock
&& 4:S_IFREG mode:0644 dev:30,199 ino:1212071 uid:122 gid:1 size:3551388
&&&&&O_WRONLY|O_APPEND|O_CREAT|O_LARGEFILE
&&&&&/export/home2/g-yang/com2.5.4/com/m-fifo/m-lost.log
&& 5:S_IFSOCK mode:0666 dev:291,0 ino:59033 uid:0 gid:0 size:0
&&&&&O_RDWR
&&&&&&&SOCK_STREAM
&&&&&&&SO_SNDBUF(16384),SO_RCVBUF(5120)
&&&&&&&sockname: AF_UNIX
&& 6:S_IFSOCK mode:0666 dev:291,0 ino:59178 uid:0 gid:0 size:0
&&&&&O_RDWR|O_NONBLOCK
&&&&&&&SOCK_STREAM
&&&&&&&SO_SNDBUF(16384),SO_RCVBUF(5120)
&&&&&&&sockname: AF_UNIX
&& 7:S_IFSOCK mode:0666 dev:291,0 ino:44609 uid:0 gid:0 size:0
&&&&&O_RDWR
&&&&&&&SOCK_STREAM
&&&&&&&SO_SNDBUF(49152),SO_RCVBUF(49152),IP_NEXTHOP(0.192.0.0)
&&&&&&&sockname: AF_INET 10.10.125.92&port: 33675
&&&&&&&peername: AF_INET 10.10.125.92&port: 7208
Solaris下查看端口占用进程
下可以简单的用lsof -i:port,Solaris系统下如果没有安装lsof,可以安装下面命令获取。
-bash-3.00# cd /proc
-bash-3.00# for i in *
& echo —— process $i ———
& pfiles $i | grep -i &port:28123&
process 18325
&&&&&&&peername: AF_INET 10.87.172.62&port: 51242
process 24243
&&&&&&&peername: AF_INET 10.87.172.62&port: 50563
process 24244
&&&&&&&peername: AF_INET 10.87.172.62&port: 50565
process 24602
&&&&&&&peername: AF_INET 10.87.172.62&port: 50582
process 25506
&&&&&&&peername: AF_INET 10.87.172.62&port: 51312
process 2743
&&&&&&&peername: AF_INET 10.87.172.62&port: 32861
HN-M5-LT&comm5&:netstat -an|grep10.87.172.62
10.87.172.56.28123&& 10.87.172.62.32861&& 49640&&&&&0 49640&&&& 41 ESTABLISHED
10.87.172.56.28124&& 10.87.172.62.51242&& 49640&&&&&0 49640&&&&& 0 ESTABLISHED
10.87.172.56.28123&& 10.87.172.62.51312&& 49640&&&&&0 49640&&&& 41 ESTABLISHED
10.87.172.56.28123&& 10.87.172.62.50563&& 49640&&&&&0 49640&&&&& 0 ESTABLISHED
10.87.172.56.28123&& 10.87.172.62.50565&& 49640&&&&&0 49640&&&&& 0 ESTABLISHED
10.87.172.56.28123&& 10.87.172.62.50582&& 49640&&&&&0 49640&&&&& 0 CLOSE_WAIT
也可以通过IP查看
&pfiles $i | grep -i &peername: AF_INET10.87.172.62&
Linux进程管理
lsof语法格式是: lsof [options] filename
常用的参数列表:
lsof filename 显示打开指定文件的所有进程
lsof -a 表示两个参数都必须满足时才显示结果
lsof -c string 显示COMMAND列中包含指定字符的进程所有打开的文件
lsof -u username 显示所属user进程打开的文件
lsof -g gid 显示归属gid的进程情况
lsof +d /DIR/ 显示目录下被进程打开的文件
lsof +D /DIR/ 同上,但是会搜索目录下的所有目录,时间相对较长
lsof -d FD 显示指定文件描述符的进程
lsof -n 不将IP转换为hostname,缺省是不加上-n参数
lsof -i 用以显示符合条件的进程情况
lsof -i[46][protocol][@hostname|hostaddr][:service|port]
46 -& IPv4 or IPv6
protocol -& TCP or UDP
hostname -& Internet host name
hostaddr -& IPv4地址
service -& /etc/service中的 servicename (可以不只一个)
port -& 端口号 (可以不只一个)
1) lsof test.txt 显示开启文件test.txt的进程
2) lsof -i :80 显示80端口现在运行什么程序
3) lsof -c httpd 显示httpd进程现在打开的文件
4) lsof -g gid 显示归属gid的进程情况
5) lsof +d /usr/local/ 显示/usr/local目录下被进程开启的文件
6) lsof +D /usr/local/ 同上,但是会搜索目录下的目录,时间较长
7) lsof -d 4 显示使用fd为4的进程
lsof -i [i] 用以显示符合条件的进程情况
语法: lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
46 -& IPv4 or IPv6
protocol -& TCP or UDP
hostname -& Internet host name
hostaddr -& IPv4位置
service -& /etc/service中的 servicename (可以不只一个)
port -& 端口号 (可以不只一个)
例子: TCP:25 – TCP and port 25
@1.2.3.4 – Internet IPv4 host address1.2.3.4
tcp@ohaha.ks.edu.tw:ftp – TCP protocolhost:ohaha.ks.edu.tw service name:ftp
9) lsof -n 不将IP转换为hostname,缺省是不加上-n参数
例子: lsof -i tcp@ohaha.ks.edu.tw:ftp -n
10) lsof -p 12 看进程号为12的进程打开了哪些文件
11) lsof +|-r [t] 控制lsof不断重复执行,缺省是15s刷新
-r,lsof会永远不断的执行,直到收到中断信号
+r,lsof会一直执行,直到没有档案被显示
例子:不断查看目前ftp连接的情况:lsof -i tcp@ohaha.ks.edu.tw:ftp -r
12) lsof -s 列出打开文件的大小,如果没有大小,则留下空白
附对lsof &p pid出来的字段说明:
COMMAND&&&&PID&&& USER&& FD&&&&&TYPE&&&&&&&&&&&& DEVICE&&&&&& SIZE&&&&&& NODE NAME
httpd&&&&&4523&& v& mem&&&&&&REG&&&&&&&&&&&&&&& 8,6&&&& 143336&&&&737809 /usr/lib64/libexpat.so.0.5.0
httpd&&&&&4523&& v& mem&&&&&&REG&&&&&&&&&&&&&&& 8,6&&&& 181832&&&1092244 /usr/lib64/libapr-0.so.0.9.4
httpd&&&&&4523&& v& mem&&&&&&REG&&&& &&&&&&&&&&&8,6&&&&& 56885&&&3457249 /lib64/tls/librt-2.3.4.so
每行显示一个打开的文件,若不指定条件默认将显示所有进程打开的所有文件。lsof输出各列信息的意义如下:
COMMAND:进程的名称
PID:进程标识符
USER:进程所有者
FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等
TYPE:文件类型,如DIR、REG等
DEVICE:指定磁盘的名称
SIZE:文件的大小
NODE:索引节点(文件在磁盘上的标识)
NAME:打开文件的确切名称
[comm1@com182 bin]$ lsof -p 24697
COMMAND&&PID&&& USER&& FD&&TYPE&&&&&&&&&&&& DEVICE&&&& SIZE&&&&NODE NAME
com&&&24697 comm1&&& 0u&& CHR&&&&&&&&&&&&&&& 1,3&&&&&&&&&&&&& 1331 /dev/null
com&&&24697 comm1&&& 1u&& CHR&&&&&&&&&&&&&&& 1,3&&&&& &&&&&&&&1331 /dev/null
com&&&24697 comm1&&& 2u&& CHR&&&&&&&&&&&&&&& 1,3&&&&&&&&&&&&& 1331 /dev/null
com&&&24697 comm1&&& 3w&& REG&&&&&&&&&&&&&&& 3,2&&&&&&& 5
/home/comm1/com3.0/com/lock/com20.lock
com&&&24697 comm1&&& 4w&& REG&&&&&&&&&&&&&&& 3,2&& 15225 /home/comm1/com3.0/com/fifo/com_main.fifo
com&&&24697 comm1&&& 5w&& REG&&&&&&&&&&&&&&& 3,2&&&&&&& 5
/home/comm1/com3.0/com/lock/com20.lock
com&&&24697 comm1&&& 6w&& REG&&&&&&&&&&&&&&& 3,2&&&&& 441
/home/comm1/com3.0/com/fifo/com_smg_recv.fifo
com&&&24697 comm1&&& 7u& IPv4&&&&&&&&&&&& 295082&&&&&&&&&&&&&& TCP *:rasadv (LISTEN)
com&&&24697 comm1&& 24u& unix 0xffff&&&&&&&&&&& 295031 socket
5.&&系统参数调整
5.1.& Solaris系统调整参数
在project文件中添加该主机所有帐户的限制信息
$vi etc/project
添加如下信息(每个模块添加一条记录):(里面的红色色部分需要修改,com1修改为实际的帐户名,1000表示ID,必须在该文件中唯一,需要修改为一个与其他行不同的值)
1:1000::::project.max-shm-memory=(privileged,,deny)
系统V共享内存是已知的Unix /中最快的进程间通信方式,那么要想采用SHM方式申请共享内存需要做哪些操作呢?
在Solaris9中,需要在/etc/system中设置如下参数:
setnoexec_user_stack=1
setsemsys:seminfo_semmni=100
setsemsys:seminfo_semmns=1024
setsemsys:seminfo_semmsl=256
setsemsys:seminfo_semvmx=32767
setshmsys:shminfo_shmmax=
setshmsys:shminfo_shmmni=100
在Solaris10中,部分设置已无效:
shmsys:shminfo_shmmax&&&&&&&&&&&&&&&& 共享内存段(shared memorysegment)最大值
shmsys:shminfo_shmmin&&&&&&&&&&&&&&&&& 共享内存段(shared memorysegment)最小值
shmsys:shminfo_shmmni&&&&&&&&&&&&&&&&& 共享内存标志符(shared memoryidentifiers)的数量,系统中共享内存段的最大个数。
semsys:seminfo_semmni&&&&&&&&&&&&&&&&& 系统中semaphoreidentifierer的最大个数。
semsys:seminfo_semmsl&&&&&&&&&&&&&&&&& 一个set中semaphore的最大个数。设置方法:设置成为10+所有实例的InitSID.ora中最大的Processes的值。
shmsys:shminfo_shmseg&&&&&&&&&&&&&&&&& 每个用户进程可以使用的最多的共享内存段的数目。
semsys:seminfo_semopm&&&&&&&&&&&&&&& 每个semop调用的大操作数
project.max-shm-memory是属于同一个project的用户所能够创建的共享内存总和最大值,
修改操作系统参数
bl480g1&g-yang&:su & root
#vi /etc/system
set shmsys:shminfo_shmmax=
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=300
set shmsys:shminfo_shmseg=120
set semsys:seminfo_semmni=3320
set semsys:seminfo_semmsl=256
set semsys:seminfo_semmns=6640
set semsys:seminfo_semopm=100
set semsys:seminfo_semvmx=32767
set noexec_user_stack=1
set noexec_user_stack_log=1
修改用户project参数
bl480g1&g-yang&:su & root
#projadd -U g-yang user.g-yang
#projmod -a -K&project.max-shm-memory=(priv,4g,deny)& user.g-yang
/export/home/g-yang&prctl -n project.max-shm-memory $$
process: 22448: -csh
NAME&&&PRIVILEGE&&&&&& VALUE&&& FLAG&&ACTION&&&&&&&&&&&&&&&&&&&&&&RECIPIENT
project.max-shm-memory
&&&&&&&privileged&&&&& &4.0GB&&&&& -&&deny&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&-
&&&&&&&system&&&&&&&&& 16.0EB&&& max&&deny&&
在2台x86主机中测试后得出结论:
1.&&&&&&shmsys:shminfo_shmmax配置均未生效,即单个共享内存段最大为2G-pagesize;
2.&&&&&&project.max-shm-memory配置默认值为1/4物理内存;设置大于此值后立即生效。
5.2.& 调整参数
修改系统核心参数
修改/etc/sysctl.conf文件,增加下面行到这个文件最后,系统重起后生效,或者使用/sbin/sysctl &p生效。
kernel.sem = 250&&&&&&& 3&&&& 128
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144
kernel.core_uses_pid = 0
net.ipv4.tcp_wmem =
sem: 表示设置的信号量,有4个值(semmsl,semmns,semopm,semmni)。
net.core.rmem_default:缺省接收buffer大小。
net.core.rmem_max:接收buffer最大值。
net.core.wmem_default:缺省发送buffer大小。
net.core.wmem_max:发送buffer最大值。
kernel.core_uses_pid:产生的core文件名是否加进程id后缀。
可以使用/sbin/sysctl &a|grep shmmni来检查重新启动后的参数符合要求。
修改用户限制
/etc/security/limits.conf
#允许用户打开文件最大数
* – nofile 65535
#允许用户创建进程最大数
* – nproc 65535
pam中加入配置使生效
/etc/pam.d/login增加一行配置:
session&&&required&&&& pam_limits.so
关闭防火墙
通过setup图形界面配置,关闭防火墙。
关闭SELinux
修改配置文件/etc/sysconfig/selinux ,将SELINUX设定为disable, 重启机器使之生效。
检查IP配置
默认是主机名对应127.0.0.1地址,需要加上一条网卡IP地址和主机名对应关系
127.0.0.1&&&&&& apptest localhost.localdomainlocalhost&&& 把这里的主机名删除
::1&&&&&&&&&&&& localhost6.localdomain6 localhost6
10.10.10.10&&&& && apptest
5.3.& 快速回收TIME_WAIT状态socket
为了使网关能够快速回收TIME_WAIT状态的socket,避免短连接频繁断连导致达到系统最大文件描述符大小,可以进行如下修改:
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_max_tw_buckets = 1000
以下为WEB常用参数修改方法
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 1024&&& 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
  说明:
  net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
  net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAITsockets重新用于新的TCP连接,默认为0,表示关闭;
  net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAITsockets的快速回收,默认为0,表示关闭。
  net.ipv4.tcp_fin_timeout = 30 表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。
  net.ipv4.tcp_keepalive_time = 1200 表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟。
  net.ipv4.ip_local_port_range = 1024&&& 65000 表示用于向外连接的端口范围。缺省情况下很小:3,改为。
  net.ipv4.tcp_max_syn_backlog = 8192 表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的连接数。
  net.ipv4.tcp_max_tw_buckets = 5000表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。默认为180000,改为5000。对于、等,上几行的参数可以很好地减少TIME_WAIT套接字数量,但是对于Squid,效果却不大。此项参数可以控制TIME_WAIT套接字的最大数量,避免Squid被大量的TIME_WAIT套接字拖死。
  执行以下命令使配置生效:
/sbin/sysctl -p
5.4.& 限制core.pid文件生成大小
RELH5.6版本系统配置core文件不带pid功能kernel.core_uses_pid=0对单线程有效,对多线程失效。
限制core文件大小方法:
在.bashrc文件中增加ulimit -c 0
5.5.& FTP工具一定选择
Linux自带的gssftp与其他系统通讯时容易出问题,需要在安装操作系统时指定安装
运行ntsysv命令,把d服务选中
运行/etc/init.d/d start启动服务
5.6.& Solaris系统性能工具
mpstat是solaris系统自带的实时工具,可以查看每个CPU处理器的统计信息。mpstat命令以表格形式报告每个处理器的统计信息,表格中的每一行代表一个处理的活动情况。mpstat可以确定每一个CPU都在花时间做什么:比如,分配给体系、用户、等待、空闲时间、体系调用、锁竞争、中断、错误、交织调用。
t2000-2&g-yang&:mpstat
CPU minf&mjf &xcal&intr &ithr& csw &icsw&migr &smtx& srwsyscl& usr &sys& wt &idl
&0&& 10&& 0&873&& 320& 200&188&&& 0&& 31&&33&&& 1&& 155&&&1&& 2&& 0& 97
&1&&& 3&& 0&&39&& 128&&& 0&213&&& 0&& 44&&19&&& 1&& 155&&&3&& 1&& 0& 97
vmstat 命令详解&
procs:进程相关
r&&&&&&&&&&&&&&&& 在运行队列中等待的进程数
b&&&&&&&&&&&&&&& 在等待io的进程数
w&&&&&&&&&&&&&& 可以进入运行队列但被替换的进程
memoy:内存相关
swap&&&&&&&& 现时可用的交换内存(k表示)
free&&&&&&&&&& 空闲的内存(k表示)
pages:内存页面相关
re&&&&&&&&&&&&&& 回收的页面
mf&&&&&&&&&&&&& 非严重错误的页面
pi&&&&&&&&&&&&&& 进入页面数(k表示)
po&&&&&&&&&&&&& 出页面数(k表示)
fr&&&&&&&&&&&&&&& 空余的页面数(k表示)
de&&&&&&&&&&&&& 提前读入的页面中的未命中数
sr&&&&&&&&&&&&&& 通过时钟算法扫描的页面
disk:显示每秒的磁盘操作
s表示scsi盘,0表示盘号
fault :显示每秒的中断数
in&&&&&&&&&&&&&& 设备中断
sy&&&&&&&&&&&&&& 系统中断
cy&&&&&&&&&&&&&& cpu交换
cpu:表示cpu的使用状态
cs&&&&&&&&&&&&&& 用户进程使用的时间
sy&&&&&&&&&&&&&& 系统进程使用的时间
id&&&&&&&&&&&&&& cpu空闲的时间
t2000-2&g-yang&:vmstat
&kthr&&&&&memory&&&&&&&&&&& page&&&&&&&&&&& disk&&&&&&&&& faults&&&&& cpu
&r bw&& swap&free& re& mf pi po fr de sr s0 s1 s2 –&& in&&sy&& cs us sy id
9 6& 7& 0&1& 1 33 -0& 0 23& 1& 0 98
t2000-2&g-yang&:iostat
&&tty&&&&&&& sd0&&&&&&&&&& sd1&&&&&&&&&& sd2&&&&&&&&&& nfs1&&&&&&&&&& cpu
&tintout kps tps serv& kps tps serv& kps tps serv&kps tps serv&& us sy wt id
&&0& 273& 12&&1&& 26& 614& 33&395&&&0&& 0&&& 6&&&0&& 0&&& 0&&&1& 0& 0 98
t2000-2&g-yang&:top
top: no termap entry for a `xterm-color'terminal
load averages:& 0.54,&0.59,& 0.60;&&&&&&&&&&&&&&&&&&& up 57+13:59:18& 15:31:59
284 processes: 283 sleeping, 1 on cpu
CPU states: 97.8% idle,& 1.2% user,&0.9% kernel,&&0.0% iowait,&0.0% swap
Memory: 8184M phys mem,&1014M free mem,&16G totalswap, 10G free swap
&&PID USERNAME LWP PRI NICE&SIZE&& RES STATE&&& TIME&&&CPU COMMAND
&19817 tags2&&&200& 53&&& 2&667M& 484M sleep&& 25:34&0.86%
&1791 g-yang&&&& 1& 44&&& 0K cpu/9&&& 0:00& 0.34% top
5.7.& 性能工具
top &#:30 up 18 days,& 2:07,&1 user,& load average: 0.00, 0.00,0.00
Tasks: 148 total,&& 1 running, 147 sleeping,&& 0 stopped,&&0 zombie
Cpu(s):&0.0%us,& 0.0%sy,& 0.0%ni,100.0%id,& 0.0%wa,&0.0%hi,& 0.0%si,& 0.0%st
Mem:&&2003096k total,& 1975052kused,&&& 28044k free,&& 397264k buffers
Swap:&4192956k total,&&&&&&& 0kused,& 4192956k free,& 1297732k cached
& PIDUSER&&&&& PR& NI&VIRT& RES& SHR S %CPU %MEM&&& TIME+&COMMAND&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&5374comm1&& 15&& 0 &824 R& 0.3& 0.1&&0:00.02 top&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&& 1root&&&&& 15&& 0 & 584 S& 0.0 &0.0&&0:00.58 init&&
[comm1@com182 ~]$ free -m
&&&&&&&&&&&&&&total&&&&&& used&&&&&& free&&&&shared&&& buffers&&&& cached
Mem:&&&&&&&&& 1956&&&&&& 1928&&&&&&&& 27&&&&&&&&& 0&&&&&&& 387&&&&&& 1267
-/+ buffers/cache:&&&&&&& &&& &&&272&&&&&&1683
Swap:&&&&&&&&4094&&&&&&&&& 0&&&&&& 4094
注:剩余内存为free+buffers+cache,swap空间还未用
6.1.& 查询这2个表空间包含的表
select tablespace_name,table_name fromuser_tables
where tablespace_name in ('COM_CDR_IDX_TS','COM_CDR_TS ');
6.2.& 查询这2个表空间包含的分区表
select table_name||'&&&&&& '||partition_name||'&&&&&&&&&&&&&&&& '||tablespace_name
from user_tab_partitions
where tablespace_name='COM_CDR_TS'
order by partition_
结果形如:
COM_CDR_MO_T&& MO&&&&&&&&&&&&& COM_CDR_TS
COM_CDR_MO_T&& MO&&&&&&&&&&&&& COM_CDR_TS
COM_CDR_MO_T&& MO&&&&&&&&&& &&&COM_CDR_TS
6.3.& 查询分区表数量
select distinct table_name
from user_tab_partitions wheretablespace_name='COM_CDR_TS';
共5个分区表
COM_CDR_MO_T
COM_CDR_MTSR_T
COM_CDR_MOSR_T
COM_CDR_MT_T
COM_CDR_SENDF_MTSR_T
6.4.& 查询分区表大小
select segment_Name,sum(bytes)/
from user_extents where tablespace_name='COM_CDR_TS'
group by segment_
SEGMENT_NAME&&&&&&&&&&&&&&&&&& SUM(BYTES)/
————————————————–
COM_CDR_MO_T&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 27490
COM_CDR_MT_T&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&&27948
COM_CDR_MTSR_T&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 222
COM_CDR_MOSR_T&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 222
COM_CDR_SENDF_MTSR_T&&&&&&&&&&&&&&&&&&&&&&&&&& 222
可见COM_CDR_MO_T、COM_CDR_MT_T较大
6.5.& 查询每个分区大小
select sum(bytes)/,partition_name
from user_extents where segment_name='COM_CDR_MT_T'
group by partition_
结果形如:
SUM(BYTES)/ PARTITION_NAME
————————————————–
&&&&&&&&&&&&&&&& 278 MT
&&&&&&&&&&&&&&&& 248 MT
&&&&&&&&&&&&&&&& 246 MT
&&&&&&&&&&&&&&&& 322 MT
&&&&&&&&&&&&&&&& 298 MT
可知每个分区大小约200~300m
6.6.& 查询最大、最小分区
selectmin(partition_name),max(partition_name)
from user_tab_partitions where table_name =upper('COM_CDR_MO_T')
order by partition_
MIN(PARTITION_NAME)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&MAX(PARTITION_NAME)
————————————————————
MO&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&MO
可见,mo大表中保存了3个月分区数据,mt大表查询方法相同
6.7.& 查询这两个表空间的分区索引(导入分区后,索引会自动创建)
select index_name||'&&&&& '||partition_name||'&&&&&& '||tablespace_name
from user_ind_partitions
where tablespace_name='COM_CDR_IDX_TS'
order by partition_
结果形如:
COM_MTSR_ARRIVE_TM_IDX MTSR&&& COM_CDR_IDX_TS
COM_MTSR_ARRIVE_TM_IDX MTSR&&& COM_CDR_IDX_TS
COM_MTSR_ARRIVE_TM_IDX MTSR&&& COM_CDR_IDX_TS
6.8.& 查询业务
select count(*),m_state,err_code,r_resultfrom com_cdr_mo_t where state_tm&=00 andstate_tm&00 group by m_state,err_code,r_
&&&&&&&&&&&&&&&&&&&&&
&COUNT(*)&&& M_STATE&& ERR_CODE&&R_RESULT
———- ———- ———- ———-
&&&&&&&&&& 0&&&&&&&&& 0&&&&&&&&& 0
&&&&27812&&&&&&&&& 0&&&&&&&&& 1&&&&&&&&& 0
&&&&33784&&&&&&&&& 0&&&&&&&& &3&&&&&&&&&0
&&5750758&&&&&&&&& 0&&&&&&&&& 4&&&&&&&&& 0
&&&&&&693&&&&&&&&& 0&&&&&&&&& 6&&&&&&&&& 0
&&&&&6133&&&&&&&&& 0&&&&&&&&& 8&&&&&&&&& 0
&&&&&&&&8&&&&&&&&& 4&&&&&&&&& 0&&&&&&&&& 0
&&&943315&&&&&&&&& 6&&&&&&&&& 0&&&&&&&&& 0
&&&&40184&&&&&&&&& 6 &&&&&&&&&0&&&&&&1009
&&&&24406&&&&&&&&& 6&&&&&&&&& 0&&&&&& 1010
&&&&&2048&&&&&&&&& 6&&&&&&&&& 0&&&&&& 1076
6.9.& 后台启动查询脚本
LN-SY-HTSMG-APP3&comms&10:db.sh &
LN-SY-HTSMG-APP3&comms&11:cat db.sh
sqlplus -S com20/2yhlfsl@com20 &&EOF&mo
set head off feedback off verify off
set wrap off
set heading off
set newpage none
set linesize 175
select count(*),substr(state_tm,1,8) from com_cdr_mo_twhere m_state=0 and err_code=0 and target_gw=137111&& and state_tm &=00 and state_tm&00 group by substr(state_tm,1,8);
7.1.& grep精确查找
grep '\&data_init\&' */*/*.c
7.2.& 查看二进制文件内容
od -c file
注:不要用vi/vim编辑二进制或文本文件,保存后会在文件后加入一个字节0x0a
标签: , , , , , , ,
& | & & | & & | & & | & & | & & | & & | & & | & & | & & | & & | & & | & & | &
最热门文章
31917 views
9799 views
6273 views
3887 views
3368 views
2986 views
2945 views
2515 views
友情链接 |
本站进行137次查询

我要回帖

更多关于 网络虚拟号发短信软件 的文章

 

随机推荐