我使用基于iptables的MAC访问限制。 我列出了我想允许访问的用户的MAC ID,然后放下rest。 而当我运行iptables -vL
它显示所有的MAC地址和它们的用法:数据包传输,数据在字节。 所以我的问题是:
什么是你的iptables --version
?
在我的, iptables -vL
自动将字节转换为Kbytes(K后缀)或Mbytes(M后缀)。
使用iptables -x
pipe道sort
,例如iptables -xvL $CHAIN | sort -rn -k 2
iptables -xvL $CHAIN | sort -rn -k 2
将上述命令的输出传递给将执行数据库插入的脚本。
您可能需要使用awk '$1 ~ /[0-9]+/'
进一步过滤Answer#2的输出以删除列标题, awk '$1 > 1000000'
仅查看大于1'000' 000字节。
iptables -xvnL $CHAIN | awk -v min=$MINIMUM '$1 ~ /[0-9]+/ && $2 >= min {print $2 "," $11}'
或者,如果您需要CSV列标题:
iptables -xvnL $CHAIN | awk -v min=$MINIMUM 'BEGIN {print "Bytes,MAC"} $1 ~ /[0-9]+/ && $2 >= min {print $2 "," $11}'
AWK是你的朋友。 http://en.wikipedia.org/wiki/AWK