2017-02-21 4 views
0

Ich habe eine Kolben-Anwendung, die fern iptables verwaltet. Wenn ich versuche, eine Regel zu löschen, die nicht existiert, ich folgende Fehlermeldung erhalten auf Kolben Konsole: -als Antwort auf Fehlermeldungen Kolben Konsole zurück

iptables: Bad rule (does a matching rule exist in that chain?). 

während als Antwort nur das ich bekommen: -

Command '['iptables', '-t', 'filter', '-s', u'<some_ip>', '-j', u'DROP', '-D', u'INPUT']' returned non-zero exit status 1 

Dies ist, wie ich diese Ausnahme behandelt: -

except subprocess.CalledProcessError as e: 
      return "\n" + str(e) + "\n" 

ich möchte, dass die Fehler in Kolben-Konsole als Antwort zurückgegeben werden. Wie erreiche ich das?

Antwort

2

Auf dem ersten Befehl als Zeichenfolge erstellen, dann in subprocess Verwendung command.split().

cmd='iptables -t filter -s {}-j DROP -D INPUT'.format('127.0.0.1') 

und das heißt

subprocess.check_output(cmd.split(), sterr=subprocess.STDOUT) 

zweite Sache: warum wollen Sie Regel entfernen, die gar nicht existiert? Ich verwende `von Kolben Import make_response`

+0

Danke, aber ich habe kein Problem mit der Ausführung des Befehls, mag ich –

+0

die Fehlermeldung als Antwort zurück. und ich eröffne mein Kolben App Stationierung auf diesem Tutorial: http://blog.luisrei.com/articles/flaskrest.html – darvark

+0

@darvark Sie müssen erklären, was genau 'subprocess.check_output (cmd.split(), sterr = subprocess. STDOUT) 'tut. – AJPennster

Verwandte Themen