由于我的崩溃程序,我发布了一个mojibake主题,���部分是一些随机字节代码,例如
test/���������������/yoyoyo qqq
如果我想清除它,我输入类似
的内容mosquitto_pub -t test/���������������/yoyoyo -r -n
但是这没有用,因为这些�字符不是原始的�,这些编解码器在ascii和unicode中不匹配,因此以�字符出现。
如何在不删除整个保留文件的情况下清除这些保留消息?
谢谢!
答案 0 :(得分:1)
如果你无法弄清楚你可以捕获它们的实际字符,并用这样的东西将它们播放回mosquitto_pub:
mosquitto_sub -v -C 1 -N -t 'test/+/yoyoyo' > file.txt
这将保存文件主题和与模式匹配的第一条消息的有效负载。主题和paylaod之间会有一个空格。
然后,您可以编辑该文件以删除有效负载并仅留下主题(在其自身的一行上,最后没有新行)并将其另存为edited_file.txt
然后您可以将其反馈到mosquitto_pub
,添加-n标志(空消息)和-r标志(保留消息)
mosquitto_pub -t `cat edited_file.txt` -r -n