Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env lua
- local mqttclient = require("luamqttc/client")
- local argparse = require "argparse"
- local parser = argparse() {
- name = "mqtt_dump",
- description = "A script to save mqtt subscription values.",
- }
- parser:option "-h" "--host"
- :argname "<server hostname>"
- parser:option("-o --output", "<output file>", "mqtt_dump.log")
- parser:option("-h --host", "<server hostname>", "localhost")
- parser:option("-p --port", "<port number>", "1883")
- parser:option("-u --user", "<user>", "")
- parser:option("-p --pass", "<password>", "")
- parser:option("-t --topic", "<topic>", "#")
- local args = parser:parse()
- local host = args.host
- local port = args.port
- local user = args.user
- local pass = args.pass
- local dump_topic = args.topic
- local timeout = 1
- file = io.open(args.output, "a")
- local aclient = mqttclient.new("mqtt_dump",{username = user, password = pass, keep_alive = 180})
- local callback = function(topic, data, packet_id, dup, qos, retained)
- print("DUMP: ", os.time(), topic, data, qos)
- file:write(os.time(),";",topic,";", data,"\n")
- end
- aclient:connect(host, port, {timeout = timeout})
- aclient:subscribe(dump_topic, 2, callback)
- aclient:message_loop()
- aclient:disconnect()
- file:close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement