DEV Community

Cover image for Linux server health/process check.
VISHAK
VISHAK

Posted on • Edited on

Linux server health/process check.

All the details about the server health, process, resource utilization can be find using this single bash script.

Advantages:

  1. Easy to get complete server information in a single click.

  2. The script is simple to edit and add services to.

  3. Shows details about the Process running, disk space, downtime, memory details, high process lists and lot more.

Let's start!!

1) Create the "healthcheck" script file and add the following codes to it.

# 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 "----------------------------------------------------------------------------------------------------------------" 
Enter fullscreen mode Exit fullscreen mode

2) By copying the file to the sbin directory and giving it execute permission, we can turn the script into a global command.

# cp healthcheck /usr/sbin/

# chmod +x /usr/sbin/healthcheck

3) Now you can call the script from anywhere in the shell

# healthcheck

checkout the script output

Linux health/process check

Linux health/process check-2

Boom🚀🚀
Keep Learning🥂

Top comments (0)