shell 监控网卡流量

需要统计网卡流量,除了依赖其他第三方的统计外,只能自己写了,原因你懂吧?:),因为生产环境没办法啊,只能自己写啊,悲催哇。

这个是统计packets的信息,可能1和9会更准一些,不过我也不清楚了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/bin/bash
eth=$1
mkdir -p /home/tmsp
while [ "1" ]
RXpre=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $2}')
TXpre=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $10}')
sleep 1
do
RXnext=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $2}')
TXnext=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $10}')
ctime=$(date "+%Y-%m-%d %H:%M:%S")
RX=$((${RXnext}-${RXpre}))
TX=$((${TXnext}-${TXpre}))
echo "$ctime|RX:$RX|TX:$TX|TRX:$RXnext|TTX:$TXnext" >> /home/tmsp/$1.log
sleep 1
done

这个是简单的记录信息,那么需要后续的工作还很多,比如脚本切割,比如话单入库等等,后续完善吧。

PS:最后补充如何运行,如果你保存为 nic.sh 先给执行权限chmod +x nic.sh 然后运行,./nic.sh eth0 参数是你想要监控的网卡信息。

不足之处,不能监控到具体的端口,目前迷惘中。欢迎指点。

Nginx 根据访问终端跳转页面

有些需求需要同一个域名识别终端来展示不同的界面,使用Nginx获取UA来判断终端类型,实现简单的跳转操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
server {
 server_name g3.tm-sp.com;
 listen 80;
 access_log off;
 location / {
 if ($http_user_agent ~ "((MIDP)|(WAP)|(UP.Browser)|(Smartphone)|(Obigo)|(Mobile)|(AU.Browser)|(wxd.Mms)|(WxdB.Browser)|(CLDC)|(UP.Link)|(KM.Browser)|(UCWEB)|(SEMC\-Browser)|(Mini)|(Symbian)|(Palm)|(Nokia)|(Panasonic)|(MOT)|(SonyEricsson)|(NEC)|(Alcatel)|(Ericsson)|(BENQ)|(BenQ)|(Amoisonic)|(Amoi)|(Capitel)|(PHILIPS)|(SAMSUNG)|(Lenovo)|(Mitsu)|(Motorola)|(SHARP)|(WAPPER)|(LG)|(EG900)|(CECT)|(Compal)|(kejian)|(Bird)|(BIRD)|(G900/V1.0)|(Arima)|(CTL)|(TDG)|(Daxian)|(DAXIAN)|(DBTEL)|(Eastcom)|(EASTCOM)|(PANTECH)|(Dopod)|(Haier)|(HAIER)|(KONKA)|(KEJIAN)|(LENOVO)|(Soutec)|(SOUTEC)|(SAGEM)|(SEC)|(SED)|(EMOL)|(INNO55)|(ZTE)|(iPhone)|(Android)|(Windows CE)|(Wget)|(Java)|(curl)|(Opera))"){
	rewrite ^/(.*)$ http://221.180.20.228:8081/wap/$1 ;
}
if ( $http_user_agent ~ ^$ )  {  
	rewrite ^/(.*)$ http://221.180.20.228:8081/wap/$1 ;  
}         
 proxy_pass http://221.180.20.228:8080;
 }
}

ERROR: JDWP Unable to get JNI 1.2 environment

在JDK1.6版本中出现如此问题,需要在main函数最后加上
System.exit(0);来解决。

ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2
JDWP exit error AGENT_ERROR_NO_JNI_ENV(183):  [../../../src/share/back/util.c:820]