linux查看tcp络连接日志,Linux监控TCP连接数并触发日志记录
场景由于服务器经常半夜出现TCP连接数暴增,没办法及时查看处理,回头看记录又看不到现象,不好排查,故编写此脚本用于记录日志。脚本内容#!/bin/bash#任务计划设置此脚本每分钟执行一次即可,* * * * * sh /shell/tcp_stats.shnow_time=$(date +%Y%m%d-%H:%M:%S)log_dir="/var/log/tcp_stats/" #日志time_
场景
由于服务器经常半夜出现TCP连接数暴增,没办法及时查看处理,回头看记录又看不到现象,不好排查,故编写此脚本用于记录日志。
脚本内容#!/bin/bash
#任务计划设置此脚本每分钟执行一次即可,* * * * * sh /shell/tcp_stats.sh
now_time=$(date +%Y%m%d-%H:%M:%S)
log_dir="/var/log/tcp_stats/" #日志
time_range="3" #3秒内的差异值
max_tcp_diff="1000" #差异值的上限
function get_netstat_log(){
if [[ ! -d $log_dir ]];then
mkdir -p $log_dir
fi
before_tcp_stats=$(netstat -anltp | wc -l) #取当前tcp连接数
sleep $time_range
after_tcp_stats=$(netstat -anltp | wc -l) #隔${time_range}秒后取tcp连接数
diff=$(expr ${after_tcp_stats} - ${before_tcp_stats}) #计算差异值
if [[ $diff > $max_tcp_diff ]];then
netstat -anltp >${log_dir}${now_time}.log
fi
}
for ((i=1, i<6, i++))
do
get_netstat_log
sleep 7
done
更多推荐
所有评论(0)