시스템 의 상황 을 감시 하고 당신 이 알 아야 할 두 세 가지!

시스템 운영 자 라면 시스템 의 중요 한 매개 변 수 를 실시 간 으로 감시 해 야 합 니 다. 좀 비 프로 세 스, CPU 의 이 용 률, 메모리 의 사용 상황, 디스크 공간의 사용 상황, 시스템 의 균형 부하 보다 못 합 니 다. 최신 정보 에 따라 시스템 운행 상태 가 좋 은 지 판단 할 수 있 습 니 다.저 는 Liux 시스템 을 접 한 시간 도 있 습 니 다. 인터넷 에서 보 았 습 니 다. 정 리 를 통 해 자주 사용 하 는 시스템 모니터링 명령 셸 스 크 립 트 를 꺼 내 서 햇볕 에 쬐 고 초보 자 에 게 학습 기 회 를 제공 하 는 동시에 경험 이 풍부 한 사람 이 기술 을 충분히 알 고 교 류 를 많이 토론 하 기 를 바 랍 니 다!
어떤 사용자 의 진행 정 보 를 얻 습 니 다:
function GetPID #user #name
{
	PsUser=$1
	#echo $PsUser
	PsName=$2
	#echo $PsName
	pid=`ps -u $PsUser | grep $PsName | grep -v grep | grep -v vi | grep -v dbx
| grep -v tail | grep -v start | grep -v stop | sed -n 1p | awk '{print $1}'` echo $pid } PID=`GetPID lgy cat` echo $PID #The process does not exist. if [ "-$PID" == "-" ] then { echo "The process does not exist." } fi
       이 안
가장 기본 적 인 프로 세 스 모니터링 명령 과 관련 되 어 있 습 니 다. Liux 에서 man ps 만 있 으 면 많은 사용 설명 을 받 을 수 있 습 니 다. grep 는 일정한 일치 규칙 에 따라 문자열 분할 매 칭 을 하고 간단 한 제어 문 도 있 습 니 다. 이런 기본 적 인 셸 문법 은 우리 의 기본 적 인 기능 이 어야 합 니 다. 저녁 에 많은 학습 자료 가 있 을 것 입 니 다.
CPU 사용률 획득:
function GetCPU
{
    CPUValue=`ps -p $1 -o pcpu | grep -v CPU | awk '{print $1}' | awk -F. '{print $1}'`
    echo $CPUValue
}

function CheckCPU
{
    PID=$1
    cpu=`GetCPU $PID`
    if [ $cpu -gt 80 ]
    then
    {
        echo "The usage of cpu is larger than 80%"
    }
    else
    {
        echo "The usage of cpu is normal"
    }
    fi
}

CheckCPU $PID

        이 프로그램 은 이전 코드 세 션 과 일맥상통 하여 이 세그먼트 코드 가 실 행 됩 니 다.
결 과 는 이따가 그 에 상응하는 전시 가 있 을 거 야!
이 스 크 립 트 의 주요 목적 은 프로 세 스 의 메모리 사용 상황 을 검사 하 는 것 입 니 다.
function GetMem
{
    MemUsage=`ps -o vsz -p $1 | grep -v VSZ`
    ((MemUsage /= 1024))
    echo $MemUsage    
}

mem=`GetMem $PID`
if [ $mem -gt 1600 ]
then
{
    echo "The usage of memory is larger than 1.6G"
}
else
{
    echo "The usage of memory is normal"
}
fi

이 프로 세 스 를 가 져 오 는 핸들 사용량 입 니 다:
function GetDes
{
    DES=`ls /proc/$1/fd | wc -l`
    echo $DES
}

des=`GetDes $PID`
if [ $des -gt 900 ]
then
{
    echo "The number of des is larger than 900"
}
else
{
    echo "The number of des is normal"
}
fi

진행 하 다.
어떤 포트 에 대한 바 인 딩 조회:
function Listening
{
    TCPListeningNum=`netstat -an | grep ":$1 " | awk '$1 == "tcp" && $NF == "LISTEN" {print $0}' | wc -l`
    UDPListenNum=`netstat -an | grep ":$1 " | awk '$1 == "udp" && $NF == "0.0.0.0:*" {print $0}' | wc -l`
    ((ListeningNum = TCPListeningNum + UDPListenNum ))
    if [ $ListeningNum == 0 ]
    then
    {
        echo "0"
    }
    else
    {
        echo "1"
    }
    fi
}

isListen=`Listening 8080`
if [ $isListen -eq 1 ]
then
{
    echo "The port is listening"
}
else
{
    echo "The port is not listening"
}
fi

시스템 CPU
의 사용 현황:
function GetSysCPU
{
    CPUIdle=`vmstat 1 5 | sed -n '3,$p' | awk '{x = x + $15} END {print x/5}' | awk -F. '{print $1}'`
    CPUNum=`echo "100-$CPUIdle" | bc`
    echo $CPUNum
}

cpu=`GetSysCPU`
echo "The System CPU is $cpu"
if [ $cpu -gt 90 ]
then
{
    echo "The usage of system cpu is larger than 90%"
}
else
{
    echo "The usage of system cpu is normal"
}
fi

얻다
제 정 된 디스크 공간:
function GetDiskSpc
{
    if [ $# -ne 1 ]
    then
        return 1
    fi
    
    Folder="$1$"
    DiskSpace=`df -k | grep $Folder | awk '{print $5}' | awk -F% '{print $1}'`
    echo $DiskSpace
}

Folder="/dev"
DiskSpace=`GetDiskSpc $Folder`
echo "The system $Folder disk space is $DiskSpace%"
if [ $DiskSpace -gt 90 ]
then
{
    echo "The usage of system disk($Folder) is larger than 90%"
}
else
{
    echo "The usage of system disk($Folder) is normal"
}
fi

이 컴퓨터 에서 코드 검사 결과
다음 과 같다.
lgy@lgy-HP:~$ ./monitorCPU.sh 
2388
The usage of cpu is normal
The usage of memory is normal
The number of des is normal
The port is not listening
The System CPU is 1
The usage of system cpu is normal
The system /dev disk space is 1%
The usage of system disk(/dev) is normal

좋은 웹페이지 즐겨찾기