BOOT="<부팅표시>"
PFS="ens1f0 ens1f1 ens2f0 ens2f1 ens7f0 ens7f1 ens8f0 ens8f1"
LIMIT=300 # 부팅 후 300초(5분) 넘으면 이상으로 표시
cat $(ls -tr messages*) | gawk -v b="$BOOT" -v pfs="$PFS" -v limit="$LIMIT" '
BEGIN{ split("Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec",m," ")
for(i in m) mon[m[i]]=i; n=split(pfs,P," "); yr=strftime("%Y") }
function ts(){ split($3,t,":"); return mktime(yr" "mon[$1]" "$2" "t[1]" "t[2]" "t[3]) }
function report(){ if(bt=="") return
for(i=1;i<=n;i++){ p=P[i]
if(p in act){ d=act[p]-bts
printf "%s %-7s %s\n", bt, p, (d>limit ? "지연 "d"초 <== 이상" : "정상 "d"초") }
else printf "%s %-7s %s\n", bt, p, "미활성화 <== 이상" }
delete act }
$0 ~ b { report(); bt=$1" "$2" "$3; bts=ts(); next }
bt!="" && /NetworkManager/ && /-> activated/ {
for(i=1;i<=n;i++){ p=P[i]
if(index($0,"device ("p"):") && !(p in act)) act[p]=ts() } }
END{ report() }' > pf_boot_check.txt
cat pf_boot_check.txt # 전체 결과
grep "이상" pf_boot_check.txt # 이상 건만