首页 > 系统相关 >创建 Linux 健康检查工具

创建 Linux 健康检查工具

时间:2023-07-04 10:14:21浏览次数:42  
标签:Status grep 创建 NC echo Linux 健康检查 linuxmi

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

聆听世界的鱼 Linux公社 2023-07-03 08:39 发表于浙江 收录于合集 #Linux747个 #Bash21个 击上方蓝字 ● 关注Linux公社     Linux 下简便的方法来查找服务状态、健康检查和服务器资源利用率等等。注:适用于单体架构。通过使用这种方法,我们可以使用单个工具检查服务器的健康状态、服务状态和服务器详细信息。只需更改脚本以添加其他服务或使用相同的模板即可。此外,通过设置定时任务,我们可以在出现问题时收到通知。让我们开始吧!编写脚本$ vim linuxmi

#! /bin/bash#color notesNC='\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 statusecho -e "${yellow}1) Tomcat${NC}"#grepping tomcat status from ps auxpp=`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}"
fiecho ""#function to check apache is running or not!function apache(){echo -e "${yellow}2) Apache-httpd${NC}"#grepping apache status from ps auxhttpd=`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 notfunction elastic(){echo -e "${yellow}3) Elasticsearch${NC}"#grepping elasticsearch status from ps auxelastic=`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 auxmysql=`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 auxdocker=`systemctl status docker | grep dead`if [[ $docker =~ "dead" ]];then echo -e " Status: ${GREEN}UP${NC}"else echo -e " Status: ${RED}DOWN${NC}"
fi}
#calling functionsapacheecho ""elasticecho ""mysqlecho ""dockerecho ""#Sectioning............#Fetching mem and cpu informationsecho -e "${YELLOW}---------------------------------------------------------------------------------------------------------------${NC}"echo "Memory Details:"echo -e "${YELLOW}---------------------------------------------------------------------------------------------------------------${NC}"sleep 1#view mem infofree -h#get uptime detailsuptime=$(uptime | awk '{print $3,$4}' | cut -f1 -d,)echo -e "${cyan}System Uptime:${NC} :$uptime"#Fetching the load averageloadaverage=$(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 utilizationps -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 detailsdf -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/linuxmilinuxmi@linuxmi ~/www.linuxmi.com
3、现在您可以在 shell 的任何位置调用该脚本。
linuxmi@linuxmi ~/www.linuxmi.com % linuxmi
示例输出如下:图片 图片优势
  • 只需一个命令就可以轻松访问完整的服务器信息,并且还可以在出现问题时安排警报通知。
  • 编辑脚本并添加服务非常简单。
  • 显示有关正在运行的进程、磁盘空间、宕机时间、内存详细信息、高进程列表等的详细信息。

图片

感谢 Linux迷 www.linuxmi.com 的精彩分享。     老师叫我小鱼儿   ,赞15
需要 Linux 精美艺术壁纸的朋友请加小编微信linuxgs口令壁纸)。来自:Linux迷
链接:https://www.linuxmi.com/linux-health-check-tool-using-bash-script.html
关注我们

长按或扫描下面二维码关注 Linux公社

 

图片

关注 Linux公社,添加“ 星标 

每天 获取 技术干货,让我们一起成长

合作联系:[email protected]

收录于合集 #Linux  747个 上一篇Peppermint OS 新版发布,轻量级的日常使用 Linux下一篇如何在 Ubuntu 上快速安装最新 Linux Kernel 6.4 阅读原文 阅读 2858   Linux公社 1802篇原创内容     写下你的留言 精选留言

相关文章

  • Linux 系统启动过程----------------linux启动过程原理
    Linux系统启动过程Linux深度学习 2023-07-0407:01 发表于北京linux启动时我们会看到许多启动信息。Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段:内核的引导。运行init。系统初始化。建立终端。用户登录系统。init程序......
  • linux grep基本用法--九五小庞
    通过此语句可以查询一个文件或者当前目录下所有文件中包含exception和error的文件grep-E-i"((exception)|(error))"*1.查找文件中是否存在指定的信息:grep<查找信息><文件名>-bash-4.1$grepexceptionerror-2015-12-29.log17:49:13.869[http-/192.168.0.80:8080-12]......
  • 当心僵尸:过时Linux内核的安全风险
    设备年年新,内核永不换。早该被淘汰的Linux内核版本,依然阴魂不散地扎根在各种各样的设备中,驱动着这些设备如同《行尸走肉》的丧尸游荡在世界各地。Linux内核安全漏洞是新闻头条常客。最近又有一个隐身十年之久的严重内核漏洞被曝光了。但是,这到底代表着什么现实意义呢?为什么......
  • linux 6day
    Linux6day1.进程间通信进程间通信进程是孤立的故此需要去访问其他进程IPC进程间通讯进程通信一般用于数据传输通知数据资源共享进程控制进程通信的方法2.无名管道1.特点2.管道创建pipe函数 #include<unistd.h> intpipe(intpipefd[2]); 功能:创建无名管道......
  • bpftune oracle linux 试用体验
    今天有测试bpftune与Rockylinux的集成,发现构建是可以成功的,但是运行会有问题(提示不支持,应该用过修改可以解决),为了更好的测试,自己跑了一个oraclelinux虚拟机跑下环境搭建通过utm+oraclelinux8.8,还是比较简单的ios下载地址:链接:https://pan.baidu.com/s/1L6ZB-2_......
  • linux系统中彻底删除MySql
    一、使用以下命令查看当前安装mysql情况,查找以前是否装有mysql1rpm-qa|grep-imysql可以看到如下图的所示:   显示之前安装了:MySQL-client-5.5.25a-1.rhel5MySQL-server-5.5.25a-1.rhel5二、停止mysql服务、删除之前安装的mysql......
  • W04-LINUX防火墙
    NAT实现:1,SNAT:SourceNAT本地网络中的主机通过某一特定地址访问外部网络,实现地址伪装,请求报文:修改源IP;#iptables-tnat-APOSTROUTING-s10.0.0.0/24!-d10.0.0.0/24-jSNAT---to-source192.168.10.200(固定公网IP)#iptables-tnat-APOSTROUTING-s10.0.0.0/24!-d......
  • Linux系统
    Linux系统Linux系统结构(静态角度)UNIX系统由内核、shell、文件系统(系统调用和共用函数库)和应用程序等4部分组成启动顺序:bootloader->linuxkernel->rootfileBootLoader引导程序:用于引导系统,初始化硬件设备、建立内存空间的映射。开发版用ubootLinux系统用imagekernel(li......
  • yaml创建模型结构,代码阅读
    *前言.最近读到类似Detectron2结构的训练代码,实在是太痛苦了。因此,做笔记记录一下。1.整体结构:Trainingkit;      |----configs:存储各种网络的yaml配置文件;      |----docs        |----imxcv:运行代码的核心组件;......
  • Cisco AnyConnect Secure Mobility Client 4.10.07062 (macOS, Linux, Windows)
    CiscoAnyConnectSecureMobilityClient4.10.07062(macOS,Linux,Windows)CiscoSecureClient(包括AnyConnect)请访问原文链接:https://sysin.org/blog/cisco-anyconnect-4/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org新版已发布:CiscoSecureClient5.0.030......