]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
suricatasc: add -c flag to run command 1122/head
authorEric Leblond <eric@regit.org>
Sat, 6 Sep 2014 09:46:21 +0000 (11:46 +0200)
committerEric Leblond <eric@regit.org>
Wed, 17 Sep 2014 09:43:36 +0000 (11:43 +0200)
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'}

scripts/suricatasc/suricatasc.in

index 459e6fead18c1c262aaf9cb5024b9b8d4b23c286..30d482dcd28094e2a6ba8ddc222dd06ef861ca7c 100755 (executable)
@@ -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: