[Linux资格认证:Linux操作系统的运行级别]Linux操作系统自从开始启动至启动完毕需要经历几个不同的阶段,这几个阶段就叫做runlevel,同样,当Linux操作系统关闭时也要经历另外几个不同的runlevel,下面我们就准备详细介绍一...+阅读
写作意图:
Linux系统自带的stat在很多时候抓信息会发现耗CPU很高,特别是在做一些监控系统的时候,发现如果使用了stat,监控系统本身会造成系统负载比较高,因此试着用perl写下,time测试比自带的stat更快更节省资源,考试.大提示欢迎批评,呵呵。
#!/usr/bin/perl
# Written by FinalBSD at 2008-11-20.
# The stat original written by C
# is expensive to me, so this born.
# As long as you retain this notice you
# can do whatever you want with this stuff.
# If we meet some day, and you think
# this stuff is worth it, you can
# buy me a beer in return.
use strict;
use warnings;
use Getopt::Std;
my $tcp = "/proc//tcp";
my $tcp6 = "/proc//tcp6";
my $route = "/proc//route";
my #tcpState = (
"NULL",
"ESTABLISHED" ,
"SYN_SENT",
"SYN_RECV",
"FIN_WAIT1",
"FIN_WAIT2",
"TIME_WAIT",
"CLOSE",
"CLOSE_WAIT",
"LAST_ACK",
"LISTEN",
"CLOSING"
);
my #routeType = (
"NULL",
"U", # UP
"G", # Gateway
"UG" # UP
my %opts;
getopts('nhatsrl', \%opts);
if($opts{h}) {
}
if($opts{r}) {
exit;
}
######## FUNCTION DEFINITION ######
#############################
# Get statistics Information
############################
sub tcp_info($) {
my $file = shift;
open(FH, $file) or die("$!");
my $format = "%-30s %-30s %-10s\n";
printf($format," Local Address"," Foreign Address","State");
while() {
next if /local_address/;
my #data = split;
my $state = $tcpState[hex($data[3])];
# Show listening Sockets.
if($opts{l}){
printf($format,
} else {
printf($format,
}
}
close(FH);
}
#############################
# Convert hex to int
############################
sub hextoint($) {
my $tmp = shift;
my #data;
my #ip;
my $int;
# if he ':', then it's addr:port,else just port.
if( $tmp =~ /:/ ) {
if( $tmp =~ /FFFF/ ) {
#data = split /:/, $tmp;
# break it and do convert later.
#ip = $data[0] =~ /\w{2}/g;
foreach my $index (12..15){
$ip[$index] = hex($ip[$index]);
}
$int = sprintf("%-5s %d.%d.%d.%d:%d", "tcp6",$ip[15], $ip[14], $ip[13], $ip[12], hex($data[1]));
} else {
#data = split /:/, $tmp;
#ip = $data[0] =~ /\w{2}/g;
foreach my $index (0..3){
$ip[$index] = hex($ip[$index]);
}
$int = sprintf("%-s %d.%d.%d.%d:%d", " ",$ip[3], $ip[2], $ip[1], $ip[0], hex($data[1]));
}
} else {
#ip = $tmp =~ /\w{2}/g;
foreach my $index (0..3){
$ip[$index] = hex($ip[$index]);
}
$int = sprintf("%d.%d.%d.%d", hex($ip[3]), hex($ip[2]), hex($ip[1]), hex($ip[0]));
}
return $int;
}
#############################
# Show Kernel route table
############################
sub route_info($) {
my $routefile = shift;
open(ROUTE, $routefile) or die ("Can't open route file!\n");
my $header = "Iface Destination Gateway Flags Genmask\n";
printf("%s", $header);
my $format = "%-5s %-15s %-15s %-5s %-15s\n";
while() {
next if /Iface/;
my #line = split;
my ($iface, $dest, $gw, $flags, $mask ) = ($line[0],
printf($format, $iface, $dest, $gw, $routeType[$flags], $mask );
}
close(ROUTE);
}
#############################
# Show help information
############################
sub usage {
printf("%s\n\n%-30s\n%-30s\n%-30s\n%-30s\n%-30s\n%-30s\n",
"stat written in Perl by FinalBSD.Copyright(c) 2008.",
"-n Show numeric ip and port address.",
"-r Display the kernel routing table.",
"-a Show both listening and non-listening socktes.",
"-t Show only TCP statistics.",
"-l Show only listening sockets.",
"-h Show help.",
);
exit;
}
以下为关联文档:
资格认证:JavaEE中各种打包文件和结构Ja EE中各种打包文件和结构下面介绍在Ja EE应用中常见的包的类型、结构、作用:1--EJB-JAR包:后缀为.jar,EJB模块,包含有Session Bean,Message Driver Bean,Entity Bean;管理这...
物流师职业资格认证考试规则第一章 考场规则第一条 考生在考试前15分钟,凭准考证进入指定考场,入座后将准考证放在桌面左上角。第二条 考试开始后15分钟,迟到考生不得进入考场,开考后30分钟内和考试结束...
Linux资格认证:Ubuntu下对CPU进行降频这两天CPU温度超高,为了解决这个问题,先是找了两块以前台式机上的风扇(一个CPU,一个机箱风扇),和一条USB延长线。接好以后运行了一段时间,发现效果很不明显,大概降了有1度吧,还不知...
资格认证:Vector和ArrayList哪一个更好下面我们从4个方面进行一一探讨API在由Ken Arnold等编著的《Ja Programming Language》(Addison-Wesley, June 2000)一书中有这样的描述,Vector类似于ArrayList.。所有从AP...
微软资格认证:Windows7任务栏详解微软Windows Team的Chaitanya Sareen,20日在开发blog中写了一篇文章,文中详细介绍了微软的下一代操作系统Window 7的任务栏的一些信息.从文章中我们看到了一个有革命意义的...
Linux资格认证:新手必了解DNS服务基本原理我们知道,既可以使用主机名标识一台主机,也可以使用IP地址标识。人们更愿意使用便于记忆的主机名标识符,而路由器则只愿使用长度固定并有层次结构的IP地址。我们可以通过多种...
资格认证:Ubuntu防ARP欺骗arptables现在一直用Ubuntu,很少出现跟人抢IP的事, 也就没有关心过,直到有一天,偶的IP被人用了,从网上找找了资料,发现了arptables这个东东!~思路和LNS的差不多!~~只让偶和网关间是双向通信,...
Linux资格认证:Ubuntu离线安装软件的方法由于公司上网有限制,但是可以通过其他机子上网,所以就查找了下离线安装软件的方法。大概方法是,把apt源设置成本地,但是首先要去下载最新的软件目录包,然后使用apt安装的时候会...
Linux资格认证:通向MySQL神秘王国的图形化之路MySQL GUI Tools是一套图形化桌面应用工具套装,可以用来管理MySQL服务器。该套装工具包含三个工具:MySQL Query Browser、MySQL Administrator和MySQL Migration Assistant(仅...