unix and linux
awk에서 서버 환경 변수 읽어오기
'김용환'
2014. 11. 5. 11:43
awk에서 서버 환경 변수를 읽어오는 부분을 잘 몰라서 좀 헤맸다.
콘트롤러 서버에서 수집이 되어야 하는 서버군에 cpu 정보를 읽어오라는 ad-hoc 명령을 내리고 싶을 때 hostname도 같이 읽어와야 데이터 수집을 쉽게 할 수 있다.
cpu 정보를 /proc/stat에서 읽어와서 awk에서 cpu 정보와 $HOSTNAME을 출력할 것이다.
awk안에 환경변수 HOSTNAME을 사용할 수 있는 두가지 방법이 있다.
1. { } 안에서 $HOSTNAME 을 사용할 때 "'" 으로 감싼다. (더블 쿼테이션 + 싱글 쿼테이션 + 더블 쿼테이션)
grep 'cpu ' /proc/stat | awk ' {usage=($2+$4)*100/($2+$4+$5)} END {print "'"$HOSTNAME "'" usage}'
2. { } 바깥에서 변수를 정의해서 사용하낟.
grep 'cpu ' /proc/stat | awk ' {usage=($2+$4)*100/($2+$4+$5)} END {print HOST " " usage}' HOST=$HOSTNAME