search
HomeSystem TutorialLINUXUse Bash script to write a simple and practical Linux health check tool

Use Bash script to write a simple and practical Linux health check tool

Feb 13, 2024 pm 01:18 PM
linuxlinux tutoriallinux systemlinux commandshell scriptembeddedlinuxGetting started with linuxlinux learning

Linux是一个强大而复杂的操作系统,它可以运行在各种硬件和环境中,提供各种功能和服务。但是,Linux也需要定期地进行健康检查,以确保系统的正常运行和性能。Linux有很多内置的命令和工具可以用来检查系统的状态和参数,但是这些命令和工具可能需要手动地输入和执行,比较繁琐和耗时。本文将介绍如何使用Bash脚本来编写一个简单而实用的Linux健康检查工具,可以一键地检查系统的基本信息、资源使用情况、网络连接情况等。

编写脚本

$ vim linuxmi

#! /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 "-------------------------------------------------------------------------------------

---------------------------"
Use Bash script to write a simple and practical Linux health check tool

2、我们可以将该脚本转换为全局命令,将文件移动到 sbin 目录,并赋予执行权限。

linuxmi@linuxmi ~/www.linuxmi.com
 % sudo cp linuxmi /usr/sbin/               
[sudo] linuxmi 的密码: 
linuxmi@linuxmi ~/www.linuxmi.com
 % sudo chmod +x /usr/sbin/linuxmi
linuxmi@linuxmi ~/www.linuxmi.com

3、现在您可以在 shell 的任何位置调用该脚本。

linuxmi@linuxmi ~/www.linuxmi.com
 % linuxmi

示例输出如下:

Use Bash script to write a simple and practical Linux health check toolUse Bash script to write a simple and practical Linux health check tool

优势

  • 只需一个命令就可以轻松访问完整的服务器信息,并且还可以在出现问题时安排警报通知。
  • 编辑脚本并添加服务非常简单。
  • 显示有关正在运行的进程、磁盘空间、宕机时间、内存详细信息、高进程列表等的详细信息。

The above is the detailed content of Use Bash script to write a simple and practical Linux health check tool. For more information, please follow other related articles on the PHP Chinese website!

Statement
This article is reproduced at:良许Linux教程网. If there is any infringement, please contact admin@php.cn delete
How to Install and Run FreeDOS on Linux Using QEMUHow to Install and Run FreeDOS on Linux Using QEMUApr 29, 2025 am 10:36 AM

This guide shows you how to set up the free and open-source DOS-compatible operating system, FreeDOS, within a Linux environment using the QEMU emulator. This allows you to run legacy DOS software and games on modern hardware without needing a separ

How to Install KDE Plasma on Linux Mint 22How to Install KDE Plasma on Linux Mint 22Apr 29, 2025 am 10:10 AM

Linux Mint, an operating system known for its simplicity, stability and ease of use, is popular with users and is especially suitable for beginners. It uses the Cinnamon desktop environment by default, providing a simple and friendly user interface. But if you prefer a different look or need more customization options, you can install other desktop environments such as KDE Plasma. KDE Plasma is a feature-rich, highly customizable and visually excellent desktop environment that provides a modern and stylish user experience. It has a wide range of customization options, advanced window management capabilities and sophisticated aesthetics, perfect for users who want to have a better control over the desktop experience. This guide will guide you step by step to install KDE Pl on Linux Mint 22

How to Reduce High RAM & CPU Usage on LinuxHow to Reduce High RAM & CPU Usage on LinuxApr 29, 2025 am 10:05 AM

Linux system performance optimization: Reduce RAM and CPU usage Linux systems are powerful and efficient, but high RAM and CPU usage can reduce performance, slow down applications, and even cause servers, workstations, or embedded systems to crash. Therefore, optimizing resource usage is crucial for the smooth operation of the system. This guide will explore practical ways to reduce RAM and CPU usage in Linux systems, covering monitoring tools, process management, kernel tuning and system optimization technologies to help you keep your system running efficiently. Identify resource-intensive processes The first step in reducing RAM and CPU usage is to identify which processes consume the most resources. To do this, you can use the following command-line tools: a. Use top

How to Boot Into Single User Mode in AlmaLinux 8/9How to Boot Into Single User Mode in AlmaLinux 8/9Apr 29, 2025 am 09:46 AM

Single User Mode (also known as Rescue Mode) Guide for AlmaLinux 8 and 9 Single-user mode is a streamlined Linux environment that allows system administrators to perform maintenance tasks, troubleshoot problems, and recover from system failures. Single-user mode is especially useful when you need to reset your root password, fix configuration errors, fix corrupt file systems, or investigate system errors that prevent normal startup. As RHEL-based distributions, AlmaLinux 8 and 9 provide an easy way to enter single-user mode via the GRUB boot loader. This guide will explain step by step how to enter single-user mode on AlmaLinux 8 and 9. What is single use

Linux Troubleshooting: 5 Common Problems & How to Fix ThemLinux Troubleshooting: 5 Common Problems & How to Fix ThemApr 29, 2025 am 09:42 AM

Linux systems are known for their power and reliability, but even experienced users will encounter unexpected problems. Whether it is an unexpectedly deleted file, a forgotten root password, or a slow system running, efficient troubleshooting skills are the key to becoming a Linux expert. This guide will introduce common Linux problem solving scenarios and step-by-step solutions that are common among system administrators, developers, and everyday Linux users. Scene 1: Unexpected deletion of important files You accidentally deleted an important file using the rm command and now you need to restore it. Unlike Windows and macOS, Linux does not have a built-in "recycle bin" to store files deleted from the terminal. Recovery options depend on

How to Permanently Change Docker Folder Permissions on LinuxHow to Permanently Change Docker Folder Permissions on LinuxApr 29, 2025 am 09:35 AM

Docker is a powerful tool that allows you to run applications in an isolated environment called containers. However, sometimes you may need to change the permissions of the Docker folder to ensure that your application has access to the necessary files and directories. This article will guide you through the process of permanently changing Docker folder permissions on Linux systems. Understand Docker folder permissions By default, Docker stores its data, including images, containers, and volumes, in specific directories on Linux systems. The most common directory is /var/lib/docker. The permissions of these folders determine who can read, write, or execute the files in it. if

Manage Docker Like a Pro: Install Portainer CE on LinuxManage Docker Like a Pro: Install Portainer CE on LinuxApr 29, 2025 am 09:24 AM

Simplify Docker Management with Portainer CE on Linux: A Step-by-Step Guide Managing Docker containers via the command line can be daunting, especially for newcomers. Portainer CE (Community Edition) offers a free, lightweight, and intuitive solutio

How to Use Whisper AI for Live Audio Transcription on LinuxHow to Use Whisper AI for Live Audio Transcription on LinuxApr 29, 2025 am 09:18 AM

This guide details how to install and use Whisper AI for real-time speech-to-text transcription on Linux systems. Whisper AI, an OpenAI creation, offers high-accuracy transcription across multiple languages. While primarily designed for batch proces

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

VSCode Windows 64-bit Download

VSCode Windows 64-bit Download

A free and powerful IDE editor launched by Microsoft

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment