Linux 서버 상태/프로세스 확인.

Linux 서버 상태/프로세스 확인.

2022-10-19 last update

5 minutes reading monitoring centos bash linux
이 단일 bash 스크립트를 사용하여 서버 상태, 프로세스, 리소스 사용률에 대한 모든 세부 정보를 찾을 수 있습니다.

장점:
  • 한 번의 클릭으로 전체 서버 정보를 쉽게 얻을 수 있습니다.
  • 스크립트는 편집 및 서비스 추가가 간단합니다.
  • 실행 중인 프로세스, 디스크 공간, 가동 중지 시간, 메모리 세부 정보, 높은 프로세스 목록 등에 대한 세부 정보를 표시합니다.

  • 시작하자!!

    1) "healthcheck"스크립트 파일을 생성하고 다음 코드를 추가합니다.
    # vim healthcheck
    #! /bin/bash
    #color notes
    NC='\033[0m'
    GREEN='\033[0;32m'
    RED='\033[0;31m'
    YELLOW='\033[0;33m'
    cyan='\033[0;36m'
    yellow='\033[0;33m'
    #Sectioning .........
    echo -e "${YELLOW}---------------------------------------------------------------------------------------------------------------${NC}"
    echo "Server details:"
    echo -e "${YELLOW}---------------------------------------------------------------------------------------------------------------${NC}"
    
    #fetching basic specs from the server(user,ip,os)
    user=`whoami`
    echo -e "${cyan}User:${NC} $user"
    hostname=`hostname`
    echo -e "${cyan}hostname:${NC} $hostname"
    ip=`hostname -I`
    echo -e "${cyan}IP address:${NC} $ip"
    os=`cat /etc/os-release | grep 'NAME\|VERSION' | grep -v 'VERSION_ID' | grep -v 'PRETTY_NAME' | grep NAME`
    echo -e "${cyan}OS:${NC} $os"
    
    #Sectioning.....
    echo -e "${YELLOW}---------------------------------------------------------------------------------------------------------------${NC}"
    echo "Service status:"
    echo -e "${YELLOW}---------------------------------------------------------------------------------------------------------------${NC}"
    sleep 1
    
    #checking tomcat status
    echo -e "${yellow}1) Tomcat${NC}"
    #grepping tomcat status from ps aux
    pp=`ps aux | grep tomcat | grep "[D]java.util"`
    if [[ $pp =~ "-Xms512M" ]];then
     echo -e "   Status: ${GREEN}UP${NC}"
    
    else
     echo -e "   Status: ${RED}DOWN${NC}"
    
    fi
    echo ""
    #function to check apache is running or not!
    function apache(){
    echo -e "${yellow}2) Apache-httpd${NC}"
    #grepping apache status from ps aux
    httpd=`ps aux | grep httpd | grep apache`
    if [[ $httpd =~ "apache" ]];then
     echo -e "   Status: ${GREEN}UP${NC}"
    
    else
     echo -e "   Status: ${RED}DOWN${NC}"
    
    fi
    
    }
    
    #function to check elastic is running or not
    function elastic(){
    echo -e "${yellow}3) Elasticsearch${NC}"
    #grepping elasticsearch status from ps aux
    elastic=`ps aux | grep elasticsearch`
    if [[ $elastic =~ "elastic+" ]];then
      echo -e "   Status: ${GREEN}UP${NC}"
    else
     echo -e "    Status: ${RED}DOWN${NC}"
    
    fi
    #function to check mysql is running or not
    }
    function mysql(){
    echo -e "${yellow}4) Mysql${NC}"
    #grepping mysql status from ps aux
    mysql=`ps aux | grep mysqld`
    if [[ $mysql =~ "mysqld" ]];then
     echo -e "   Status: ${GREEN}UP${NC}"
    else
     echo -e "   Status: ${RED}DOWN${NC}"
    
    fi
    }
    
    
    function docker(){
    echo -e "${yellow}5) Docker${NC}"
    #grepping docker status from ps aux
    docker=`systemctl status docker | grep dead`
    if [[ $docker =~ "dead" ]];then
     echo -e "   Status: ${GREEN}UP${NC}"
    else
     echo -e "   Status: ${RED}DOWN${NC}"
    
    fi
    }
    
    #calling functions
    apache
    echo ""
    elastic
    echo ""
    mysql
    echo ""
    docker
    echo ""
    #Sectioning............
    #Fetching mem and cpu informations
    echo -e "${YELLOW}---------------------------------------------------------------------------------------------------------------${NC}"
    echo "Memory Details:"
    echo -e "${YELLOW}---------------------------------------------------------------------------------------------------------------${NC}"
    sleep 1
    #view mem info
    free -h
    #get uptime details
    uptime=$(uptime | awk '{print $3,$4}' | cut -f1 -d,)
    echo -e "${cyan}System Uptime:${NC} :$uptime"
    #Fetching the load average
    loadaverage=$(top -n 1 -b | grep "load average:" | awk '{print $10 $11 $12}')
    echo -e "${cyan}Load average:${NC}: $loadaverage"
    echo -e "${cyan}The top 10 services with high resource usage are listed below.${NC}"
    #Get top services with high resource utilization
    ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head
    
    
    #sectioning...........
    #Fetching server space details!
    echo -e "${YELLOW}---------------------------------------------------------------------------------------------------------------${NC}"
    echo "Server space Details:"
    echo -e "${YELLOW}---------------------------------------------------------------------------------------------------------------${NC}"
    #View disk space details
    df -h
    
    
    echo "----------------------------------------------------------------------------------------------------------------"
    
    
    


    2) 파일을 sbin 디렉토리에 복사하고 실행 권한을 부여하여 스크립트를 전역 명령으로 전환할 수 있습니다.
    # cp healthcheck /usr/sbin/# chmod +x /usr/sbin/healthcheck
    3) 이제 쉘의 어느 곳에서나 스크립트를 호출할 수 있습니다
    # healthcheck
    스크립트 출력 체크 아웃





    붐🚀🚀
    계속 배우세요🥂