1.文件
一个文件/etc/ssh/ipblock
包含如下所示的行:
2012-01-01 12:00 192.0.2.201
2012-01-01 14:15 198.51.100.123
2012-02-15 09:45 192.0.2.15
2012-03-12 21:45 192.0.2.14
2012-04-25 00:15 203.0.113.243
2. 命令
该命令的输出iptables -nL somechain
如下所示:
链 somechain (2 参考) 目标 prot opt 源目标 DROP all -- 172.18.1.4 任何地方 DROP all -- 198.51.100.123 任何地方 DROP all -- 172.20.4.16 任何地方 DROP all -- 192.0.2.125 任何地方 DROP all -- 172.21.1.2 任何地方
3. 手头的任务
- 首先,我想获取 iptables 链(字段 4)中存在但文件中不存在的 IP 地址列表 A。
- 然后我想获取文件中存在但不在 iptables 链中的 IP 地址列表 B。
- 列表 A 中的 IP 地址应以相同的样式(日期、时间、IP)附加到文件中
- 然后应将列表 B 中的 IP 地址添加到 iptables 链中
iptables -A somechain -d IP -j DROP
4. 背景
我希望扩展我的 awk-fu,所以我一直试图让它与一个可以在没有参数的情况下执行的 awk 脚本一起工作。但我失败了。
我知道我可以使用命令从命令中获取输出,getline
因此我能够以这种方式获取时间和日期。而且我也知道可以使用getline foo < file
. 但是我只有多次失败的尝试将这一切组合成一个工作的 awk 脚本。
我意识到我可以让它与其他编程语言或 shell 脚本一起工作。但这可以通过无需参数即可运行的 awk 脚本来完成吗?