88 lines
3.0 KiB
Awk
88 lines
3.0 KiB
Awk
#!/bin/awk -f
|
|
|
|
#############################
|
|
# clean data and filter some to rediect to new file
|
|
# Author: Liao
|
|
# modify time: 2022/2/17 17:05 (+8:00)
|
|
#############################
|
|
|
|
BEGIN{
|
|
# filePath = "/data/log_dir/mySimpleLog"
|
|
|
|
# system("echo '\n\n\n----------' >> "awk_run_log_path" && date '+%x %X' >> "awk_run_log_path)
|
|
|
|
#dp_recv_from_device = @/ dp rept_type:[0-9]+, data:/
|
|
#dp_is_condition = @/dp [0-9]+ match/
|
|
#dp_not_condition = @/no id match/
|
|
#pattern = @/([0-9]+-[0-9]+ ([0-9]+:){3}[0-9]+)/
|
|
#
|
|
#connection_check_ok = @/condition set is ok,then execute action set./
|
|
# Get form OS
|
|
log2file("{\"event\":\"gateway reboot\"}")
|
|
|
|
}
|
|
|
|
$0~/ dp rept_type:[0-9]+, data:/ {
|
|
atime = match($0,/[0-9]{1,2}-[0-9]{1,2} ([0-9]{1,2}:){3}[0-9]{1,3}/) ? substr($0,RSTART,RLENGTH):null;
|
|
adps = match($0,/\{.+\}/) ? substr($0,RSTART,RLENGTH):null;
|
|
aLogJson = "{ \"time\":"atime", \"event\":\"dp report\", \"dps\":"adps"}"
|
|
# log2file(aLogJson)
|
|
}
|
|
|
|
$0~/rev id:\w+ cmd:\{.*\} type:0/ {
|
|
atime = match($0,/[0-9]{1,2}-[0-9]{1,2} ([0-9]{1,2}:){3}[0-9]{1,3}/) ? substr($0,RSTART,RLENGTH) : null;
|
|
adps = match($0,/cmd:\{.+\} /) ? substr(substr($0,RSTART,RLENGTH),5,RLENGTH-5) : "unkown";
|
|
devMac = match($0,/rev id:\w+/) ? substr(substr($0,RSTART,RLENGTH),8) : null
|
|
|
|
if((getline conditionLine) > 0){
|
|
isCondition = match(conditionLine,/(no id match|no dp match)/) ? "false" : match(conditionLine,/dp [0-9]+ match/) ? "true" : "unkown"
|
|
condition = "\"isCondition\":"isCondition
|
|
if (isCondition=="true"){
|
|
conditionDp = match(conditionLine,/\] dp [0-9]+ match/) ? substr(substr(conditionLine,RSTART,RLENGTH),6,RLENGTH-11) : "unkown"
|
|
condition = condition",\"conditionDp\":"conditionDp
|
|
}
|
|
}else{
|
|
print "no more line"
|
|
}
|
|
|
|
aLogJson = "{ \"time\":"atime", \"event\":\"linkage recv dp\", \"dps\":"adps",\"devMac\":\""devMac"\","condition"}"
|
|
log2file(aLogJson)
|
|
}
|
|
|
|
$0~/condition set is ok,then execute action set\./ {
|
|
# print $0
|
|
atime = match($0,/[0-9]{1,2}-[0-9]{1,2} ([0-9]{1,2}:){3}[0-9]{1,3}/) ? substr($0,RSTART,RLENGTH) : null;
|
|
aruleid = match($0,/scene:\w+,/) ? substr(substr($0,RSTART,RLENGTH),7,RLENGTH-7) : "false"
|
|
log2file("{ \"time\":"atime", \"event\":\"trigger\", \"ruleid\":\""aruleid"\",\"triggerNow\":\"true\"}")
|
|
}
|
|
|
|
$0~/action<[0-9]+> is dp cmd:/ {
|
|
atime = match($0,/[0-9]{1,2}-[0-9]{1,2} ([0-9]{1,2}:){3}[0-9]{1,3}/) ? substr($0,RSTART,RLENGTH) : null;
|
|
adps = match($0,/cmd:\{.+\}$/) ? substr(substr($0,RSTART,RLENGTH),5,RLENGTH-4) : "unkown";
|
|
|
|
aLogJson = "{ \"time\":"atime", \"event\":\"action\", \"cmd\":"adps"}"
|
|
log2file(aLogJson)
|
|
}
|
|
|
|
|
|
END{
|
|
|
|
}
|
|
|
|
function matchRet(reg ,RSTART,RLENGTH){
|
|
#print reg
|
|
if(match($0,$reg)){
|
|
return substr($0,RSTART,RLENGTH)
|
|
}else{
|
|
return "Nothing Matched"
|
|
}
|
|
}
|
|
|
|
function log2file(logJson){
|
|
system("echo -e '"logJson"' >> /data/log_dir/mySimpleLog")
|
|
}
|
|
|
|
function splitAndUpload(){
|
|
newFileName = "/data/log_dir/mySimpleLog_"systime()
|
|
system("mv /data/log_dir/mySimpleLog "newFileName" && tftp 192.168.1.5 -p -l "newFileName" && rm "newFileName)
|
|
} |