카테고리 없음

재부팅 이후 PF Up 안되는 상황 찾아내는 스크립트

92Hoonhee 2026. 9. 29. 17:48

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          # 이상 건만