If/then 仅当第二行之后的值
If/then only when values after second line
我正在尝试将被 PF 防火墙列入黑名单的 IP 地址添加到日志中,以便我们随着时间的推移记录它们,最好是 date/time 添加它们。
以下命令显示了我想要捕获的 IP 地址:
% pfctl -t bruteforce -T show
No ALTQ support in kernel
ALTQ related functions disabled
1.2.3.4
2.3.4.5
但前两行(内核中不支持 ALTQ,禁用 ALTQ 相关功能)需要删除,我没有运气使用 awk、sed 或 tail 这样做。我认为以下可能有用,但没有乐趣:
% pfctl -t bruteforce -T show | sed 1,2d
No ALTQ support in kernel
ALTQ related functions disabled
而且我还想知道如何最好地将其编织到 if/then 语句中,以便仅当有结果(即任何 IP 地址)时,才将其写入日志,最好使用date/time 已添加。
抱歉我是新手,非常感谢任何想法或帮助。
段
尝试将输出输送到 awk
并指定您只需要大于“2”的行号 'NR>2':
pfctl -t bruteforce -T show | awk 'NR>2'
要将其放入脚本中,可以:
#!/bin/sh
logfile="logfile.txt"
pass=0
for i in $( pfctl -t bruteforce -T show | awk 'NR>2' )
do # only log the date once
[ "$pass" -eq 0 ] && { date >> "$logfile" ; pass=1 ; }
# log the ip addresses to "$logfile" one at a time
printf "$i\n" >> "$logfile"
done
我正在尝试将被 PF 防火墙列入黑名单的 IP 地址添加到日志中,以便我们随着时间的推移记录它们,最好是 date/time 添加它们。
以下命令显示了我想要捕获的 IP 地址:
% pfctl -t bruteforce -T show
No ALTQ support in kernel
ALTQ related functions disabled
1.2.3.4
2.3.4.5
但前两行(内核中不支持 ALTQ,禁用 ALTQ 相关功能)需要删除,我没有运气使用 awk、sed 或 tail 这样做。我认为以下可能有用,但没有乐趣:
% pfctl -t bruteforce -T show | sed 1,2d
No ALTQ support in kernel
ALTQ related functions disabled
而且我还想知道如何最好地将其编织到 if/then 语句中,以便仅当有结果(即任何 IP 地址)时,才将其写入日志,最好使用date/time 已添加。
抱歉我是新手,非常感谢任何想法或帮助。
段
尝试将输出输送到 awk
并指定您只需要大于“2”的行号 'NR>2':
pfctl -t bruteforce -T show | awk 'NR>2'
要将其放入脚本中,可以:
#!/bin/sh
logfile="logfile.txt"
pass=0
for i in $( pfctl -t bruteforce -T show | awk 'NR>2' )
do # only log the date once
[ "$pass" -eq 0 ] && { date >> "$logfile" ; pass=1 ; }
# log the ip addresses to "$logfile" one at a time
printf "$i\n" >> "$logfile"
done