LogSync
查询日志信息
- 注意事项,注册为服务执行 tasklist 会报错用户名或密码错误
注册/卸载服务/启动/停止/重启
LogSync.exe -action version 查看版本号
配置
手动执行(已去除)
http://localhost:8001/sync_log?sync_log=1 // 通讯录,设备
http://localhost:8001/sync_device_log?sync_log=1 // 设备日志
问题
运行一段时间后报错bind: An operation on a socket could not be performed because the system lacked sufficient buffer sp
上网搜查后确定问题源:代码连接端口的频次超出windows默认最大值
当然其中牵扯最大连接数量,起始中止端口号,释放连接资源时间(windows10默认120s)
日志超时15分钟,主动查询设备信息逻辑耗时较多
3.程序以服务形式运行,执行 tasklist 命令提示账号密码错误
windows系统下,程序以服务形式运行,执行 tasklist 命令提示账号密码错误,直接运行程序能够正常执行。
经过测试后发现,需要在服务注冊后设置登录账号和密码,才能正常执行 tasklist pscp 等命令。
更新应用后需要设置账号密码,(容易忘记)
同时,tasklist 等命令返回的错误信息编码为 gbk 需要转码才能显示
4.warning: remote host tried to write to a file called '2021-02-26' when we requested a file called ''. If this is a wildcard, consider upgrading to SSH-2 or using the '-unsafe' option. Renaming of this file has been disallowed.
ssh-1 版本情况下复制多个文件的时候会提示警告,需要增加 -unsafe 选项解决。或者升级为 ssh-2 版本。
热重启
- 暂时无法热重启,推荐方案endless,grace;都是用于http 服务热更新。
- 热重启无法自动设置 windows 账号密码。
- 可选方案:下载 update.exe 文件并执行,然后由 update.exe 完成程序更新(停止-删除文件-下载文件-启动)。
编译
-w 忽略DWARFv3调试信息,使用该选项后将无法使用gdb进行调试。
-s 忽略符号表和调试信息。
go build -ldflags "-w -s -X main.Version=v1.9" -o ./cmd/LogSync.exe main.go
GOOS=windows GOARCH=amd64 CC=/usr/local/bin/x86_64-w64-mingw32-gcc CXX=/usr/local/bin/x86_64-w64-mingw32-g+ go build -ldflags " -w -s -X main.Version=v2.27" -o ./cmd/LogSync.exe
模拟日志
- del 删除日志文件
- device 设备日志时间和服务器时间不一致
- plugin 插件故障
- real 正常
go run ./mocklog/main.go ./mocklog/path.go ./mocklog/fault.go -action del
device 设备获取 sql
select ct_loc.loc_desc as loc_desc,pac_room.room_desc as room_desc, pac_bed.bed_code as bed_code, dev_id ,dev_code ,dev_desc ,dev_position ,dev_type,dev_active,dev_status,dev_create_time,mm.ipaddr as dev_ip from cf_device left join mqtt.mqtt_device as mm on mm.username = cf_device.dev_code left join ct_loc on ct_loc.loc_id = cf_device.ct_loc_id left join pac_room on pac_room.room_id = cf_device.pac_room_id left join pac_bed on pac_bed.bed_id = cf_device.pac_bed_id where cf_device.dev_active = '1'
fvr grpc
protoc --go_out=./ .\grpc\fvr\fvr.proto
版本更新
- v0.0.1 第一版本
- v0.0.2 修改 ping 方法,使用 github.com/go-ping/ping 包
- v0.0.3 优化ping 方法
- v0.0.4 增加端口监控,端口、服务、接口监控增加故障类型字段
- v0.0.5 增加freeswitch,redis 服务监控