openwrt 读取系统日志:logread
openwrt 读取系统日志:logread
openwrt 读取系统日志:logread
sudo apt-get install ntpdate
sudo ntpdate cn.pool.ntp.org
可以通过命令上使用
Usage: uci [<options>] <command> [<arguments>]
Commands:
batch
export [<config>]
import [<config>]
changes [<config>]
commit [<config>]
add <config> <section-type>
add_list <config>.<section>.<option>=<string>
del_list <config>.<section>.<option>=<string>
show [<config>[.<section>[.<option>]]]
get <config>.<section>[.<option>]
set <config>.<section>[.<option>]=<value>
delete <config>[.<section>[[.<option>][=<id>]]]
rename <config>.<section>[.<option>]=<name>
revert <config>[.<section>[.<option>]]
reorder <config>.<section>=<position>
Options:
-c <path> set the search path for config files (default: /etc/config)
-d <str> set the delimiter for list values in uci show
-f <file> use <file> as input instead of stdin
-m when importing, merge data into an existing package
-n name unnamed sections on export (default)
-N don't name unnamed sections
-p <path> add a search path for config change files
-P <path> add a search path for config change files and use as default
-q quiet mode (don't print error messages)
-s force strict mode (stop on parser errors, default)
-S disable strict mode
-X do not use extended syntax on 'show'
例如查看 lora-app-server服务:
journalctl -u lora-app-server -f -n 50
用户身份认证总是一件绕不过去又颇费脑子的事情。听说出了JWT认证外,还有SAML、SWT等认证方式。这篇文章讲JWT讲得很好,可以看看。
斜杠划分不同的级别,如
“sport/tennis/player1”
井号通配当前级别以下的所有内容
如“sport/tennis/player1/#”匹配:
· “sport/tennis/player1”
· “sport/tennis/player1/ranking”
· “sport/tennis/player1/score/wimbledon”
如果只是一个#,则匹配所有。
加号匹配单级内容
如 “sport/tennis/+” 匹配 “sport/tennis/player1” 和 “sport/tennis/player2”, 但是不匹配 “sport/tennis/player1/ranking”,也不匹配““sport/tennis”
美元符号在发布时放在主题名称前面,用作系统特定的一些消息发布,并且不能被#、+通配符所匹配到。
$SYS/一般用于发布和服务器系统相关的信息
应用不应使用$开头的名称。
查版本命令好多:
···
uname -a
cat /proc/version
cat /etc/issue
···
然而Debian有个发行代号codename,经常影响apt源的使用,怎么查看?
lsb_release -c
查看用户
cat /etc/passwd
查看用户组
cat /etc/group
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys xxxxxxxxxxxxxxx
grep "\-v"
或者
grep -- -v
或者regexp:
grep -e -v
20201/5/17更新: Windows上也支持mosquitto了,在mosquitto官网上有windows版本的下载, 可以使用. 以前的似乎不能用:windows(win10) 就别费劲了。。。两个版本win32和cygwin装完都不能运行,坑爹的是它还需要一大堆的dll,这些dll它不提供还要你去找。。。
ubuntu上装起来很容易,直接
sudo apt-get install mosquitto
就可以了。装完了直接作为服务运行。开始还奇怪,为什么运行mosquitto老是提示地址被占用(Address already in use.)
装完服务装客户端,命令是
sudo apt-get install mosquitto-clients
这样你才可以用mosquitto-sub命令
输入
mosquitto_sub -t 'test/topic' -v
订阅消息,等待消息输出。
使用-h命令可以指定服务器地址, 否则是以本机为服务器.
mosquitto的payload可以是二进制数据, 如果要以16进制显示, 使用-F命令跟上格式%x, 注意-F命令在旧版的mosquitto上不支持:
mosquitto_sub -h 192.168.0.108 -t rgb/show -F %x
另开一个终端,输入:
mosquitto_pub -t 'test/topic' -m 'hello world'
在前一个终端窗口就能看到消息了。
远程连接MQTT服务器,加入参数 -h xxx.xxx.xxx.xxx 就可以了。
命令行直接发送(限于Linux BASH)
echo -ne "\x45\x23\x43" | mosquitto_pub -h test.mosquitto.org -t 'test/binary' -s
通过文件发送
mosquitto_pub -t test -f filename 转载并翻译自溢栈Stackoveflow
RPC(remote process call)远程过程调用,指的是要调用一个本机上没有的方法,并获取结果。
这听上去和API差不多,通常API都是基于http的,准确的说是http/1.1。并且以JSON作为返回值。
更理想和漂亮的API调用就是Restful的API,同样基于HTTP/1.1,使用了协议提供的get,post,delete,put等方法。
然而追求效率的程序猿们发现HTTP/1.1协议本身的问题造成延迟,导致响应速度有些慢,于是google提出了一种基于HTTP/2(更快的HTTP)的gRPC协议。
当然作用是比Restful API更快了。
这儿还有一个gRPC和Restful相互转换的项目grpc-gateway
nodejs使用grpc,看这儿
简单来说,nodejs中,需要
1. 定义服务接口, 在xxx.proto文件中定义。定义采用的是protocol buffer数据结构,哦,又是另一种XML、JSON的替代品。但protocol buffer(现在是第三版proto3)不止如此,它更是一种语言
2. 定义服务端,在server的.js文件中定义。
3. 客户端调用。
MQTT,全称Message Queue Telemetry Transport消息队列遥测传输,是一种开销较小的、使用订阅机制传输信息的协议。
协议中两种设备,Broker和client,broker相当于服务器的角色。
例如,Client B, C是两个显示屏,向Broker订阅(Subscribe)温度主题(topic)。
温度传感器为client A,向broker发布(Publish)一个温度主题。此时,broker向已订阅温度的client B、C发送温度信息。
协议原文
node.js中自带两个库,分别是net和dgram。net用于tcp连接,dgram用于udp连接。