안녕하세요 unix 교재로 기초적인 부분을 공부하고 있습니다. (글쓴이는 html 만 해보았던 기억이 있습니다.)
아무래도 시스템 쪽으로 공부를 하다보면 서버, 네트워크, db 는 적어도 기초는 알아야겠다 싶어서 보고 있는 중인데..
서버 부분에서 unix shell 부분을 어느정도 알아야 스크립트가 돌아가는 구조를 알 수 있겠더군요
----------------------------
파일시스템이 10% 사용중 이상인걸 찾으려고 합니다.
함수는 sed랑 awk 를 사용했습니다.
일단
1. grep -v filesystem 나오는 행을 없애버렸습니다. (컬럼 구분이 틀려져서.. )
2. sed -e s/%//g 는 sed로 에디트 할 때 %로 나오는 건 삭제를 하도록 했습니다. (%가 붙으면 사용률 구분 안됨)
3. awk '$5 > 10 {print $0}' <- 요놈이 문제
5번째 컬럼(capacity)에서 10보다 큰걸 출력해라 인데 {print $0}에서 $0이 해당 값 (10보다 큰 값을)을 저장하기 위한 변수로 붙은건지요?
$0, $1 을 해보니 컬럼값이 $1에 관련된 컬럼이 추가로 붙네요
$0은 그냥 전체 컬럼을 모두 출력하기 위한 변수 인지요?
1. 그냥 df 화면
##################################################################################
# df -kh
Filesystem size used avail capacity Mounted on
/dev/dsk/c1t0d0s0 30G 9.5G 20G 33% /
/devices 0K 0K 0K 0% /devices
ctfs 0K 0K 0K 0% /system/contract
##################################################################################
2. df | sed | awk 를 사용한 화면
$#################################################################################
# df -kh | grep -v Filesystem | sed -e s/%//g | awk '$5 > 10 {print $0}'
/dev/dsk/c1t0d0s0 30G 9.5G 20G 33 /
/usr/lib/libc/libc_hwcap1.so.1 30G 9.5G 20G 33 /lib/libc.so.1
/dev/dsk/c1t0d0s7 13G 8.6G 4.7G 65 /export/home
/vol/dev/dsk/c0t0d0/sol_10_910_x86 2.0G 2.0G 0K 100 /cdrom/sol_10_910_x86
##################################################################################
3. df | sed | awk (에서 print 부분 $1 부분을 추가함) 를 사용한 화면##################################################################################
# df -kh | grep -v Filesystem | sed -e s/%//g | awk '$5 > 10 {print $0, $1}'
/dev/dsk/c1t0d0s0 30G 9.5G 20G 33 / /dev/dsk/c1t0d0s0
/usr/lib/libc/libc_hwcap1.so.1 30G 9.5G 20G 33 /lib/libc.so.1 /usr/lib/libc/libc_hwcap1.so.1
/dev/dsk/c1t0d0s7 13G 8.6G 4.7G 65 /export/home /dev/dsk/c1t0d0s7
/vol/dev/dsk/c0t0d0/sol_10_910_x86 2.0G 2.0G 0K 100 /cdrom/sol_10_910_x86 /vol/dev/dsk/c0t0d0/sol_10_910_x86
읽어주셔서 감사합니다.
$1~´Â Ä÷³(Çʵå)°ªÀÌ°í print·Î Ãâ·ÂÇ϶ó´Â À̾߱Ⱑ µË´Ï´Ù.