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条语句。不建议使用此方法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!