핑의 응답시간을 쉘스크립트로 작성
사용방법은
./ping.sh 192.168.1.1 10
이렇게 하면 192.168.1.1의 time의 값이 10이하이면 정상 표시
10 이상 이면 빨간색으로 ping의 time값이 나타난다
#### 쉘 부분
#!/bin/bash
### PING의 TIME값 체크
### 작성자 : 진성훈
### VERSION 1.0
IP=$1 # 아이피를 입력또는 변수 $1으로 지정
MAX=$2 # TIME의 값의 범위를 지정
SEG=”0.7″ # PING 체크 간격
### 변수지정
ping=”/bin/ping”
### BASH에서는 소수점을 인식못하기때문에 함수를 사용
###########################################################
# FUNCTIONS
#
function float_cond()
{
local cond=0
if [[ $# -gt 0 ]]; then
cond=$(echo “$*” | bc -q 2>/dev/null)
if [[ -z “$cond” ]]; then cond=0; fi
if [[ “$cond” != 0 && “$cond” != 1 ]]; then cond=0; fi
fi
local stat=$((cond == 0))
return $stat
}
###########################################################
### WHILE 문을 이용하여 계속 스크립트 실행
while true
do
### TIME의 숫자값을 확인
RET=${ping} -c 1 ${IP} | grep 'time=' | awk '{print $7}' | cut -d '=' -f 2
### 타입값과 지정한 값을 비교
#if float_cond “${RET} > ${MAX}”; then
if float_cond “${RET} < ${MAX}”; then
echo -e ” [“date '+%T'
“] : ${IP}” “\e[1;32m time=${RET} ms \e[m”
## 지정한 time값보다 큰 값일 경우 실행
else
### 확인
echo -e ” [“date '+%T'
“] : ${IP}” “\e[1;31m time=${RET} ms \e[m”
fi
### ping 체크 간격 변수 지정
sleep ${SEG}
done