格式化 iptables 输出并实时监控

格式化 iptables 输出并实时监控

我的 iptables 规则包含一些长条目,feLOG目标,当我尝试使用命令监视它时,这会导致输出不太好watch

由于我是在笔记本电脑上进行测试,因此屏幕不是那么宽。所以我想,是否可以从显示中排除最后一列?这是我的规则的一些示例:

$IT -A tcpLog -p tcp --tcp-flags SYN,ACK SYN,ACK -m conntrack --ctstate NEW -j LOG --log-prefix "[BAD TCP]" --log-level warning -m limit --limit 10/m
$IT -A tcpLog -p tcp --tcp-flags FIN,ACK FIN -j LOG --log-prefix "[BAD TCP]" --log-level warning -m limit --limit 10/m
$IT -A tcpLog -p tcp --tcp-flags ACK,PSH PSH -j LOG --log-prefix "[BAD TCP]" --log-level warning -m limit --limit 10/m

那么我如何排除在这种情况下显示的最后一列、日志前缀和相关信息?

另外,我会监控它,watch -n 1 iptables -L -nv 谢谢

答案1

以下是如何排除输出的最后一列:

my_command | awk '{ $NF="" } 1'

就我个人而言,我更愿意使用以下命令之一将输出截断为特定宽度:

my_command | pr -t -W "$COLUMNS"
my_command | cut -c "-$COLUMNS"

这是当选项打开 ( )时根据终端宽度COLUMNS设置的变量。当然,您可以使用您选择的任意数量。bashcheckwinsizeshopt -s checkwinsize

相关内容