Linux下记录Tomcat的连接数脚本

现在需要在Linux中了解每天Tomcat的连接数,可以通过获取Tomcat的端口连接数来掌握大致情况
Tomcat连接数脚本:

#!/bin/bash

TDATE=$(date '+%Y-%m-%d %H:%M:%S')

number=`netstat -an | grep 8081 | grep -v 'LISTEN' | awk '{$5=""; print $0}' | grep '10.222.11.74:8081'| wc -l`


echo $TDATE $number >> /usr/local/script/tomcat_conn/logs/$(date +%Y-%m-%d).log

通过netstat 过滤多余的信息,只记录连接到8081端口的外部链接,并将信息写入到每天的日志文件中。

脚本写好后,可以放到crontab中定期执行
在Linux中三种让crontab每秒执行任务的方法
第一种方法:

1.创建脚本文件

cat phplog.sh

2.编辑脚本内容

#!/bin/bash
while : ;do
/home/scripts.sh 2>/dev/null &
sleep 1
done

注意:第一次运行时请不要使用bash phplog.sh & 这种后台运行的方式,它会僵死的。
解决:可以把它放到计划任务使其运行,然后将计划任务中的此条目删除即可。最后把这个脚本放到/etc/rc.local让它每次开机都可以被运行。

第二种方法:

1.创建脚本文件

cat tomcat_crontab.sh

2.编辑脚本内容

#!/bin/bash  
  
step=3

for (( i = 0; i < 60; i=(i+step) )); do
    /bin/bash /usr/local/script/tomcat_conn/tomcat_conn.sh
    sleep $step
done
  
exit 0  

3.编辑crontab脚本

* * * * * /bin/bash /usr/local/script/tomcat_conn/tomcat_crontab.sh

原理:在sh使用for语句实现循环指定秒数执行。
注意:如果60不能整除间隔的秒数,则需要调整执行的时间。例如需要每7秒执行一次,就需要找到7与60的最小公倍数,7与60的最小公倍数是420(即7分钟)。
则 crontab.sh step的值为7,循环结束条件i<420, crontab -e可以输入以下语句来实现

*/7 * * * * /usr/local/script/tomcat_conn/tomcat_crontab.sh

第三种方法:

1.编辑crontab脚本

* * * * * /home/scripts.sh
* * * * * sleep 1 && /home/scripts.sh
* * * * * sleep 2 && /home/scripts.sh
* * * * * sleep 3 && /home/scripts.sh
…
* * * * * sleep 57 && /home/scripts.sh
* * * * * sleep 58 && /home/scripts.sh
* * * * * sleep 59 && /home/scripts.sh

如果间隔的秒数太少,例如2秒执行一次,这样就需要在crontab 加入60/2=30条语句。不建议使用此方法

转载于:https://www.cnblogs.com/blogjun/articles/8303761.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值