使用Bash腳本編寫一個簡單又實用的Linux健康檢查工具
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 "------------------------------------------------------------------------------------- ---------------------------"

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
示例输出如下:
优势
- 只需一个命令就可以轻松访问完整的服务器信息,并且还可以在出现问题时安排警报通知。
- 编辑脚本并添加服务非常简单。
- 显示有关正在运行的进程、磁盘空间、宕机时间、内存详细信息、高进程列表等的详细信息。
以上是使用Bash腳本編寫一個簡單又實用的Linux健康檢查工具的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

VS Code 系統要求:操作系統:Windows 10 及以上、macOS 10.12 及以上、Linux 發行版處理器:最低 1.6 GHz,推薦 2.0 GHz 及以上內存:最低 512 MB,推薦 4 GB 及以上存儲空間:最低 250 MB,推薦 1 GB 及以上其他要求:穩定網絡連接,Xorg/Wayland(Linux)

Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

雖然 Notepad 無法直接運行 Java 代碼,但可以通過借助其他工具實現:使用命令行編譯器 (javac) 編譯代碼,生成字節碼文件 (filename.class)。使用 Java 解釋器 (java) 解釋字節碼,執行代碼並輸出結果。

VS Code擴展安裝失敗的原因可能包括:網絡不穩定、權限不足、系統兼容性問題、VS Code版本過舊、殺毒軟件或防火牆干擾。通過檢查網絡連接、權限、日誌文件、更新VS Code、禁用安全軟件以及重啟VS Code或計算機,可以逐步排查和解決問題。

要查看 Git 倉庫地址,請執行以下步驟:1. 打開命令行並導航到倉庫目錄;2. 運行 "git remote -v" 命令;3. 查看輸出中的倉庫名稱及其相應的地址。

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

vscode 內置終端是一個開發工具,允許在編輯器內運行命令和腳本,以簡化開發流程。如何使用 vscode 終端:通過快捷鍵 (Ctrl/Cmd ) 打開終端。輸入命令或運行腳本。使用熱鍵 (如 Ctrl L 清除終端)。更改工作目錄 (如 cd 命令)。高級功能包括調試模式、代碼片段自動補全和交互式命令歷史。

VS Code 可以在 Mac 上使用。它具有強大的擴展功能、Git 集成、終端和調試器,同時還提供了豐富的設置選項。但是,對於特別大型項目或專業性較強的開發,VS Code 可能會有性能或功能限制。
