批量生成iptables规则

一、抓出需要开放的端口

#netstat -tpnl|grep java|awk '{printf $4}'|sed "s/:::/\\n/g"|grep -v "^$" >ports.txt
#cat ports.txt 
5229
5269
7777
9090
9091
5222
5223

 这里使用netstat抓出java监听的所有tcp端口


二、生成规则

# while read PORT; do echo "-A INPUT -m state --state NEW -m tcp -p tcp --dport $PORT -j ACCEPT" ; done < ports.txt
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5229 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5269 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 7777 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9090 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9091 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5222 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5223 -j ACCEPT

 使用while循环批量生成规则


你可能感兴趣的:(shell,行变列)