日期:2014-05-16 浏览次数:20637 次
目标
在linux下实现每天8点-0点每2分钟一次统计web服务器各端口的请求情况,并输出结果到相应的log文件--shell脚本
脚本存放目录
/opt/tomcat/bin/total.sh
主要命令
netstat、grep 、touch、cd、vi、mkdir、chmod、 crontab、cat、date
第一步:编写脚本
1、进入脚本存放目录:cd /opt/tomcat
2、创建文件夹、并进入: mkdir bin、cd bin
3、创建total.sh文件:touch total.sh
4、写total.sh文件:vi total.sh
使用i 命令在total.sh中输入以下内容
#! /bin/sh #定义脚本运行shell
count=0 #定义特定端口下的连接数
count1=0 #定义特定端口下来自 JAVA的连接数
#写日志
WriteLog(){
time=`date +%D' '%T` #获取执行时间
out=$time,$1,$count,$count1
echo $out >>/opt/tomcat/bin/bingfa_$1.log #记录统计日志
# 练习使用块注解及case语法
:<<block
case $1 in
9080) echo $out >>/opt/tomcat/bin/log_9080.txt;;
8080) echo $out >>/opt/tomcat/bin/log_8080.txt;;
7080) echo $out >>/opt/tomcat/bin/log_7080.txt;;
4080) echo $out >>/opt/tomcat/bin/log_4080.txt;;
*) echo " error "
esac
block
}
#统计并发量
Total(){
count=`netstat -anop|grep $1 -wc`
count1=`netstat -anop|grep java |grep $1 -wc`
WriteLog $1
}
Total 5080 #调用
后按esc :wq 保存退出,到此该脚本完成。
5、给该文件添加可执行权限:chmod +x total.sh
设置完成后就可以使用total.sh来运行该脚本了。
第二步:设置定时器
接下来就是在了linux上设置使其定时执行:
linux有个Crontab程序可以很好的完成我们的目标,避免我们自己在shell脚本中写循环执行。具体如下:
crontab -l
(查看当前用户的定时程序)
crontab -e
(进入编辑用户定时程序)
使用i命令,写入
*/2 8-23 * * * /opt/tomcat/bin/total.sh
输完内容后按esc :wq 保存退出
这样total.sh就会在每天的8-23点每两分钟执行一次。
补充