suricatasc: add -c flag to run command

Add -c flag to run command given as argument and return the raw
JSON result. For example, it is possible to run something like.
 $ suricatasc  -c "iface-stat eth0"
 {'message': {'pkts': 17838352, 'drop': 0, 'invalid-checksums': 1}, 'return': 'OK'}
pull/1122/head
Eric Leblond 12 years ago
parent 1b9cc03653
commit 7f68a25535

@ -20,6 +20,7 @@ from suricatasc import *
parser = argparse.ArgumentParser(prog='suricatasc', description='Client for Suricata unix socket')
parser.add_argument('-v', '--verbose', action='store_const', const=True, help='verbose output (including JSON dump)')
parser.add_argument('-c', '--command', default=None, help='execute on single command and return JSON')
parser.add_argument('socket', metavar='socket', nargs='?', help='socket file to connnect to', default=None)
args = parser.parse_args()
@ -37,6 +38,13 @@ except SuricataNetException, err:
except SuricataReturnException, err:
print "Unable to negotiate version with server: %s" % (err)
sys.exit(1)
if args.command:
(command, arguments) = sc.parse_command(args.command)
print sc.send_command(command, arguments)
sc.close()
sys.exit(0)
try:
sc.interactive()
except SuricataNetException, err:

Loading…
Cancel
Save