我有一个远程管理iptables的烧录应用程序。当我尝试删除不存在的规则时,我在flask控制台上收到以下错误: -
loginClicked
而作为回应我只得到这个: -
iptables: Bad rule (does a matching rule exist in that chain?).
这是我处理该例外的方式: -
Command '['iptables', '-t', 'filter', '-s', u'<some_ip>', '-j', u'DROP', '-D', u'INPUT']' returned non-zero exit status 1
我希望将flask控制台中的错误作为响应返回。我如何实现这一目标?
答案 0 :(得分:2)
首先将命令创建为字符串,然后在子进程中使用command.split()
。
cmd='iptables -t filter -s {}-j DROP -D INPUT'.format('127.0.0.1')
,即
subprocess.check_output(cmd.split(), sterr=subprocess.STDOUT)
第二件事:为什么要删除不存在的规则?