这个脚本会根据提供的端口,监控端口的进出口流量,如果流量大于设置节点,则阻止此端口流量。实际使用将脚本放到/root/目录下执行即可。
脚本机制:
脚本运行时,会在脚本当前目录建立flowcheck目录,之后会根据相应监控端口生成相应文件夹,文件夹内含有监控脚本以及相关文件。
#!/bin/bash
dir=$(cd `dirname $0`;pwd)
dir=$dir/flowcheck
read -p "请输入要监控的端口号:" net
read -p "请输入要监控的流量大小(以G为单位):" flow_size
mkdir $dir/$net
touch $dir/$net/input
touch $dir/$net/output
touch $dir/$net/${net}.sh
#显示监控端口流量
iptables -A INPUT -p tcp --dport $net
iptables -A OUTPUT -p tcp --sport $net
(
cat << EOF
while true;
do
iptables -L -v -n|grep $net|awk '{print \$2}'|sed -n '1p' >> $dir/$net/input
iptables -L -v -n|grep $net|awk '{print \$2}'|sed -n '2p' >> $dir/$net/output
sleep 10
out=\$(tail -n 1 $dir/$net/output |tr -cd "[A-Z]")
in=\$(tail -n 1 $dir/$net/input |tr -cd "[A-Z]")
case \$out