1MOSQUITTO_RR(1) Commands MOSQUITTO_RR(1)
2
3
4
6 mosquitto_rr - an MQTT version 5/3.1.1 client for request/response
7 messaging
8
10 mosquitto_rr
11 {[-h hostname] [-p port-number] [ [-u username] [-P password] ] -t message-topic...
12 | -L URL [-t message-topic...] | [-e response-topic]}
13 {-f file | -m message | -n | -s} [-A bind-address] [-c]
14 [-d] [-D command identifier value] [-i client-id]
15 [-I client-id-prefix] [-k keepalive-time] [-N]
16 [-q message-QoS] [-R] [-S] [-v] [-V protocol-version]
17 [-W message-processing-timeout] [--proxy socks-url]
18 [--quiet]
19 [--will-topic topic [--will-payload payload] [--will-qos qos] [--will-retain]]
20 [[{--cafile file | --capath dir} [--cert file] [--key file] [--ciphers ciphers] [--tls-version version] [--tls-alpn protocol] [--tls-engine engine] [--keyform {pem | engine}] [--tls-engine-kpass-sha1 kpass-sha1] [--insecure]]
21 |
22 [--psk hex-key --psk-identity identity [--ciphers ciphers] [--tls-version version]]]
23
24 mosquitto_rr [--help]
25
27 mosquitto_rr is an MQTT version 5/3.1.1 client that can be used to
28 publish a request message and wait for a response. When using MQTT v5,
29 which is the default, mosquitto_rr will use the Request-Response
30 feature.
31
33 mosquitto_rr supports TLS encrypted connections. It is strongly
34 recommended that you use an encrypted connection for anything more than
35 the most basic setup.
36
37 To enable TLS connections when using x509 certificates, one of either
38 --cafile or --capath must be provided as an option.
39
40 To enable TLS connections when using TLS-PSK, you must use the --psk
41 and the --psk-identity options.
42
44 The options below may be given on the command line, but may also be
45 placed in a config file located at $XDG_CONFIG_HOME/mosquitto_rr or
46 $HOME/.config/mosquitto_rr with one pair of -option value per line. The
47 values in the config file will be used as defaults and can be
48 overridden by using the command line. The exceptions to this is -t,
49 which if given in the config file will not be overridden. Note also
50 that currently some options cannot be negated, e.g. -S. Config file
51 lines that have a # as the first character are treated as comments and
52 not processed any further.
53
54 -A
55 Bind the outgoing connection to a local ip address/hostname. Use
56 this argument if you need to restrict network communication to a
57 particular interface.
58
59 -c, --disable-clean-session
60 Disable the 'clean session' flag. This means that all of the
61 subscriptions for the client will be maintained after it
62 disconnects, along with subsequent QoS 1 and QoS 2 messages that
63 arrive. When the client reconnects, it will receive all of the
64 queued messages.
65
66 If using this option, the client id must be set manually with --id
67
68 --cafile
69 Define the path to a file containing PEM encoded CA certificates
70 that are trusted. Used to enable SSL communication.
71
72 See also --capath
73
74 --capath
75 Define the path to a directory containing PEM encoded CA
76 certificates that are trusted. Used to enable SSL communication.
77
78 For --capath to work correctly, the certificate files must have
79 ".crt" as the file ending and you must run "openssl rehash <path to
80 capath>" each time you add/remove a certificate.
81
82 See also --cafile
83
84 --cert
85 Define the path to a file containing a PEM encoded certificate for
86 this client, if required by the server.
87
88 See also --key.
89
90 --ciphers
91 An openssl compatible list of TLS ciphers to support in the client.
92 See ciphers(1) for more information.
93
94 -d, --debug
95 Enable debug messages.
96
97 -D, --property
98 Use an MQTT v5 property with this publish. If you use this option,
99 the client will be set to be an MQTT v5 client. This option has two
100 forms:
101
102 -D command identifier value
103
104 -D command identifier name value
105
106 command is the MQTT command/packet identifier and can be one of
107 CONNECT, PUBACK, PUBREC, PUBCOMP, SUBSCRIBE, UNSUBSCRIBE,
108 DISCONNECT, AUTH, or WILL. The properties available for each
109 command are listed in the Properties section.
110
111 identifier is the name of the property to add. This is as described
112 in the specification, but with '-' as a word separator. For
113 example: payload-format-indicator. More details are in the
114 Properties section.
115
116 value is the value of the property to add, with a data type that is
117 property specific.
118
119 name is only used for the user-property property as the first of
120 the two strings in the string pair. In that case, value is the
121 second of the strings in the pair.
122
123 -f, --file
124 Send the contents of a file as the request message.
125
126 -F
127 Specify output printing format. This option allows you to choose
128 what information from each message is printed to the screen. See
129 the Output Format section below for full details.
130
131 This option overrides the -v option, but does not override the -N
132 option.
133
134 --help
135 Display usage information.
136
137 -h, --host
138 Specify the host to connect to. Defaults to localhost.
139
140 -i, --id
141 The id to use for this client. If not given, defaults to
142 mosquitto_rr_ appended with the process id of the client. Cannot be
143 used at the same time as the --id-prefix argument.
144
145 -I, --id-prefix
146 Provide a prefix that the client id will be built from by appending
147 the process id of the client. This is useful where the broker is
148 using the clientid_prefixes option. Cannot be used at the same time
149 as the --id argument.
150
151 --insecure
152 When using certificate based encryption, this option disables
153 verification of the server hostname in the server certificate. This
154 can be useful when testing initial server configurations but makes
155 it possible for a malicious third party to impersonate your server
156 through DNS spoofing, for example. Use this option in testing only.
157 If you need to resort to using this option in a production
158 environment, your setup is at fault and there is no point using
159 encryption.
160
161 -k, --keepalive
162 The number of seconds between sending PING commands to the broker
163 for the purposes of informing it we are still connected and
164 functioning. Defaults to 60 seconds.
165
166 --key
167 Define the path to a file containing a PEM encoded private key for
168 this client, if required by the server.
169
170 See also --cert.
171
172 --keyform
173 Specifies the type of private key in use when making TLS
174 connections.. This can be "pem" or "engine". This parameter is
175 useful when a TPM module is being used and the private key has been
176 created with it. Defaults to "pem", which means normal private key
177 files are used.
178
179 See also --tls-engine.
180
181 -L, --url
182 Specify specify user, password, hostname, port and topic at once as
183 a URL. The URL must be in the form:
184 mqtt(s)://[username[:password]@]host[:port]/topic
185
186 If the scheme is mqtt:// then the port defaults to 1883. If the
187 scheme is mqtts:// then the port defaults to 8883.
188
189 -m, --message
190 Send a single request message from the command line.
191
192 -N
193 Do not append an end of line character to the payload when
194 printing. This allows streaming of payload data from multiple
195 messages directly to another application unmodified. Only really
196 makes sense when not using -v.
197
198 -n, --null-message
199 Send a null (zero length) request message.
200
201 -p, --port
202 Connect to the port specified. If not given, the default of 1883
203 for plain MQTT or 8883 for MQTT over TLS will be used.
204
205 -P, --pw
206 Provide a password to be used for authenticating with the broker.
207 Using this argument without also specifying a username is invalid.
208 See also the --username option.
209
210 --proxy
211 Specify a SOCKS5 proxy to connect through. "None" and "username"
212 authentication types are supported. The socks-url must be of the
213 form socks5h://[username[:password]@]host[:port]. The protocol
214 prefix socks5h means that hostnames are resolved by the proxy. The
215 symbols %25, %3A and %40 are URL decoded into %, : and @
216 respectively, if present in the username or password.
217
218 If username is not given, then no authentication is attempted. If
219 the port is not given, then the default of 1080 is used.
220
221 More SOCKS versions may be available in the future, depending on
222 demand, and will use different protocol prefixes as described in
223 curl(1).
224
225 --psk
226 Provide the hexadecimal (no leading 0x) pre-shared-key matching the
227 one used on the broker to use TLS-PSK encryption support.
228 --psk-identity must also be provided to enable TLS-PSK.
229
230 --psk-identity
231 The client identity to use with TLS-PSK support. This may be used
232 instead of a username if the broker is configured to do so.
233
234 -q, --qos
235 Specify the quality of service desired for the incoming messages,
236 from 0, 1 and 2. Defaults to 0. See mqtt(7) for more information on
237 QoS.
238
239 The QoS is identical for all topics subscribed to in a single
240 instance of mosquitto_rr.
241
242 --quiet
243 If this argument is given, no runtime errors will be printed. This
244 excludes any error messages given in case of invalid user input
245 (e.g. using --port without a port).
246
247 -R
248 If this argument is given, messages that are received that have the
249 retain bit set will not be printed. Messages with retain set are
250 "stale", in that it is not known when they were originally
251 published. When subscribing to a wildcard topic there may be a
252 large number of retained messages. This argument suppresses their
253 display.
254
255 -S
256 Use SRV lookups to determine which host to connect to. Performs
257 lookups to _mqtt._tcp.<host> when used in conjunction with -h,
258 otherwise uses _mqtt._tcp.<local dns domain>.
259
260 -s, --stdin-file
261 Send a request message read from stdin, sending the entire content
262 as a single message.
263
264 -t, --topic
265 The MQTT topic to subscribe to, where responses will be waited for.
266 See mqtt(7) for more information on MQTT topics.
267
268 This option may be repeated to subscribe to multiple topics.
269
270 --tls-alpn
271 Provide a protocol to use when connecting to a broker that has
272 multiple protocols available on a single port, e.g. MQTT and
273 WebSockets.
274
275 --tls-engine
276 A valid openssl engine id. These can be listed with openssl engine
277 command.
278
279 See also --keyform.
280
281 --tls-engine-kpass-sha1
282 SHA1 of the private key password when using an TLS engine. Some TLS
283 engines such as the TPM engine may require the use of a password in
284 order to be accessed. This option allows a hex encoded SHA1 hash of
285 the password to the engine directly, instead of the user being
286 prompted for the password.
287
288 See also --tls-engine.
289
290 --tls-version
291 Choose which TLS protocol version to use when communicating with
292 the broker. Valid options are tlsv1.3, tlsv1.2 and tlsv1.1. The
293 default value is tlsv1.2. Must match the protocol version used by
294 the broker.
295
296 -u, --username
297 Provide a username to be used for authenticating with the broker.
298 See also the --pw argument.
299
300 -v, --verbose
301 Print received messages verbosely. With this argument, messages
302 will be printed as "topic payload". When this argument is not
303 given, the messages are printed as "payload".
304
305 -V, --protocol-version
306 Specify which version of the MQTT protocol should be used when
307 connecting to the rmeote broker. Can be 5, 311, 31, or the more
308 verbose mqttv5, mqttv311, or mqttv31. Defaults to 311.
309
310 --will-payload
311 Specify a message that will be stored by the broker and sent out if
312 this client disconnects unexpectedly. This must be used in
313 conjunction with --will-topic.
314
315 --will-qos
316 The QoS to use for the Will. Defaults to 0. This must be used in
317 conjunction with --will-topic.
318
319 --will-retain
320 If given, if the client disconnects unexpectedly the message sent
321 out will be treated as a retained message. This must be used in
322 conjunction with --will-topic.
323
324 --will-topic
325 The topic on which to send a Will, in the event that the client
326 disconnects unexpectedly.
327
329 There are three ways of formatting the output from mosquitto_rr. In all
330 cases a new-line character is appended for each message received unless
331 the -N argument is passed to mosquitto_rr.
332
333 Payload-only is the default output format and will print the payload
334 exactly as it is received.
335
336 Verbose mode is activated with -v and prints the message topic and the
337 payload, separated by a space.
338
339 The final option is formatted output, which allows the user to define a
340 custom output format. The behaviour is controlled with the -F
341 format-string option. The format string is a free text string where
342 interpreted sequences are replaced by different parameters. The
343 available interpreted sequences are described below.
344
345 Three characters are used to start an interpreted sequence: %, @ and \.
346 Sequences starting with % are either parameters related to the MQTT
347 message being printed, or are helper sequences to avoid the need to
348 type long date format strings for example. Sequences starting with @
349 are passed to the strftime(3) function (with the @ replaced with a % -
350 note that only the character immediately after the @ is passed to
351 strftime). This allows the construction of a wide variety of time based
352 outputs. The output options for strftime vary from platform to
353 platform, so please check what is available for your platform.
354 mosquitto_rr does provide one extension to strftime which is @N, which
355 can be used to obtain the number of nanoseconds passed in the current
356 second. The resolution of this option varies depending on the platform.
357 The final sequence character is \, which is used to input some
358 characters that would otherwise be difficult to enter.
359
360 MQTT related parameters
361 · %% a literal %.
362
363 · %l the length of the payload in bytes.
364
365 · %m the message id (only relevant for messages with QoS>0).
366
367 · %p the payload raw bytes (may produce non-printable characters
368 depending on the payload).
369
370 · %q the message QoS.
371
372 · %r the retained flag for the message.
373
374 · %t the message topic.
375
376 · %x the payload with each byte as a hexadecimal number (lower case).
377
378 · %X the payload with each byte as a hexadecimal number (upper case).
379
380 Helpers
381 · %I ISO-8601 format date and time, e.g. 2016-08-10T09:47:38+0100
382
383 · %j JSON output of message parameters and timestamp, with a quoted
384 and escaped payload. For example
385 {"tst":1470825369,"topic":"greeting","qos":0,"retain":0,"payload":"hello
386 world"}
387
388 · %J JSON output of message parameters and timestamp, with a
389 non-quoted and non-escaped payload - this means the payload must
390 itself be valid JSON. For example:
391 {"tst":1470825369,"topic":"foo","qos":0,"retain":0,"payload":{"temperature":27.0,"humidity":57}}.
392
393 · %I ISO-8601 format date and time, e.g. 2016-08-10T09:47:38+0100
394
395 · %U Unix timestamp with nanoseconds, e.g. 1470818943.786368637
396
397 Time related parameters
398 · @@ a literal @.
399
400 · @X pass the character represented by X to the strftime function as
401 %X. The options supported are platform dependent.
402
403 · @N the number of nanoseconds that have passed in the current
404 second, with varying timing resolution depending on platform.
405
406 Escape characters
407 · \\ a literal \.
408
409 · \0 a null character. Can be used to separate different parameters
410 that may contain spaces (e.g. topic, payload) so that processing
411 with tools such as xargs(1) is easier.
412
413 · \a alert/bell.
414
415 · \e the escape sequence, which can be used with ANSI colour codes to
416 provide coloured output for example.
417
418 · \n end of line.
419
420 · \r carriage return.
421
422 · \t horizontal tab.
423
424 · \v vertical tab.
425
427 mosquitto_rr can register a message with the broker that will be sent
428 out if it disconnects unexpectedly. See mqtt(7) for more information.
429
430 The minimum requirement for this is to use --will-topic to specify
431 which topic the will should be sent out on. This will result in a
432 non-retained, zero length message with QoS 0.
433
434 Use the --will-retain, --will-payload and --will-qos arguments to
435 modify the other will parameters.
436
438 The -D / --property option allows adding properties to different stages
439 of the mosquitto_rr run. The properties supported for each command are
440 as follows:
441
442 Connect
443 · authentication-data (binary data - note treated as a string in
444 mosquitto_rr)
445
446 · authentication-method (UTF-8 string pair)
447
448 · maximum-packet-size (32-bit unsigned integer)
449
450 · receive-maximum (16-bit unsigned integer)
451
452 · request-problem-information (8-bit unsigned integer)
453
454 · request-response-information (8-bit unsigned integer)
455
456 · session-expiry-interval (32-bit unsigned integer)
457
458 · topic-alias-maximum (16-bit unsigned integer)
459
460 · user-property (UTF-8 string pair)
461
462 Publish
463 · content-type (UTF-8 string)
464
465 · correlation-data (binary data - note treated as a string in
466 mosquitto_rr)
467
468 · message-expiry-interval (32-bit unsigned integer)
469
470 · payload-format-indicator (8-bit unsigned integer)
471
472 · response-topic (UTF-8 string)
473
474 · topic-alias (16-bit unsigned integer)
475
476 · user-property (UTF-8 string pair)
477
478 Subscribe
479 · user-property (UTF-8 string pair)
480
481 Unsubscribe
482 · user-property (UTF-8 string pair)
483
484 Disconnect
485 · session-expiry-interval (32-bit unsigned integer)
486
487 · user-property (UTF-8 string pair)
488
489 Will properties
490 · content-type (UTF-8 string)
491
492 · correlation-data (binary data - note treated as a string in
493 mosquitto_pub)
494
495 · message-expiry-interval (32-bit unsigned integer)
496
497 · payload-format-indicator (8-bit unsigned integer)
498
499 · response-topic (UTF-8 string)
500
501 · user-property (UTF-8 string pair)
502
503 · will-delay-interval (32-bit unsigned integer)
504
506 $XDG_CONFIG_HOME/mosquitto_rr, $HOME/.config/mosquitto_rr
507 Configuration file for default options.
508
510 mosquitto bug information can be found at
511 https://github.com/eclipse/mosquitto/issues
512
514 mqtt(7), mosquitto_pub(1), mosquitto_sub(1), mosquitto(8),
515 libmosquitto(3), mosquitto-tls(7)
516
518 Roger Light <roger@atchoo.org>
519
520
521
522Mosquitto Project 04/26/2019 MOSQUITTO_RR(1)