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
'unix and linux' 카테고리의 다른 글
jdk 1.8 rpm을 ubuntu에 설치하기 (0) | 2014.11.12 |
---|---|
[bash] seq, grep, pipe 를 이용한 시간별 특정 단어 있는지 체크하는 예제 (0) | 2014.11.12 |
[mac] macos에서 불필요하게 포트를 Listen 하는 프로세스 발견하기 (0) | 2014.10.22 |
[bash] seq를 이용하여 서버목록에 ssh 명령 실행하기 (0) | 2014.10.14 |
[bash] 숫자로 바뀌지 않는 변수 (converting variables to number) (0) | 2014.10.07 |