ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

使用 bash 脚本创建 Linux 健康检查工具

使用 bash 脚本创建 Linux 健康检查工具 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) userwhoami echo -e ${cyan}User:${NC} $user hostnamehostname echo -e ${cyan}hostname:${NC} $hostname iphostname -I echo -e ${cyan}IP address:${NC} $ip oscat /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 ppps 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 httpdps 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 elasticps 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 mysqlps 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 dockersystemctl 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 目录并赋予执行权限。linuxmilinuxmi ~/www.linuxmi.com % sudo cp linuxmi /usr/sbin/ [sudo] linuxmi 的密码 linuxmilinuxmi ~/www.linuxmi.com % sudo chmod x /usr/sbin/linuxmi linuxmilinuxmi ~/www.linuxmi.com3、现在您可以在 shell 的任何位置调用该脚本。linuxmilinuxmi ~/www.linuxmi.com % linuxmi示例输出如下优势只需一个命令就可以轻松访问完整的服务器信息并且还可以在出现问题时安排警报通知。编辑脚本并添加服务非常简单。显示有关正在运行的进程、磁盘空间、宕机时间、内存详细信息、高进程列表等的详细信息。
返回列表