美文网首页
Centos7 检查项目健康状态

Centos7 检查项目健康状态

作者: 木子_vajra | 来源:发表于2023-12-06 16:52 被阅读0次

啥也不说了,直接上脚本,简单粗暴

#! /bin/bash
#color notes
Normal='\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}---------------------------------------------------------------------------------------------------------------${Normal}"
echo "Server details:"
echo -e "${YELLOW}---------------------------------------------------------------------------------------------------------------${Normal}"

#fetching basic specs from the server(user,ip,os)
user=`whoami`
echo -e "${cyan}User:${Normal} $user"
hostname=`hostname`
echo -e "${cyan}hostname:${Normal} $hostname"
ip=`hostname -I`
echo -e "${cyan}IP address:${Normal} $ip"
os=`cat /etc/os-release | grep 'NAME\|VERSION' | grep -v 'VERSION_ID' | grep -v 'PRETTY_NAME' | grep NAME`
echo -e "${cyan}OS:${Normal} $os"

#Sectioning.....
echo -e "${YELLOW}---------------------------------------------------------------------------------------------------------------${Normal}"
echo "5 Service status:"
echo -e "${YELLOW}---------------------------------------------------------------------------------------------------------------${Normal}"
sleep 1
echo ""

#function to check nginx is running or not!
function nginx() {
echo -e "${yellow}1) Nginx${Normal}"
#grepping nginx status from ps aux
nginx=`systemctl status nginx | grep nginx`
if [[ $nginx =~ "nginx" ]];then
 echo -e "   Status: ${GREEN}UP${Normal}"
else
 echo -e "   Status: ${RED}DOWN${Normal}"
fi
}

#function to check redis is running or not!
function redis() {
echo -e "${yellow}2) redis${Normal}"
#grepping redis status from ps aux
redis=`systemctl status redis | grep redis`
if [[ $redis =~ "redis" ]];then
 echo -e "   Status: ${GREEN}UP${Normal}"
else
 echo -e "   Status: ${RED}DOWN${Normal}"
fi
}

#function to check elastic is running or not
function elastic() {
echo -e "${yellow}3) Elasticsearch${Normal}"
#grepping elasticsearch status from ps aux
elastic=`ps aux | grep elasticsearch`
if [[ $elastic =~ "elastic+" ]];then
 echo -e "   Status: ${GREEN}UP${Normal}"
else
 echo -e "    Status: ${RED}DOWN${Normal}"
fi
#function to check mysql is running or not
}
function mysql() {
echo -e "${yellow}4) Mysql${Normal}"
#grepping mysql status from ps aux
mysql=`ps aux | grep mysql`
if [[ $mysql =~ "mysql" ]];then
 echo -e "   Status: ${GREEN}UP${Normal}"
else
 echo -e "   Status: ${RED}DOWN${Normal}"
fi
}

function nacos() {
echo -e "${yellow}5) Nacos${Normal}"
#grepping nacos status from ps aux
nacos=`systemctl status nacos | grep nacos`
if [[ $nacos =~ "nacos" ]];then
 echo -e "   Status: ${GREEN}UP${Normal}"
else
 echo -e "   Status: ${RED}DOWN${Normal}"
fi
}
#calling functions
nginx
echo ""
redis
echo ""
elastic
echo ""
mysql
echo ""
nacos
echo ""
echo -e "${YELLOW}---------------------------------------------------------------------------------------------------------------${Normal}"
echo " 4 WEB Service status:"
echo -e "${YELLOW}---------------------------------------------------------------------------------------------------------------${Normal}"
sleep 1
echo ""

#grepping xxl_job status from ps aux
function xxl_job() {
echo -e "${yellow}6) xxl_job${Normal}"
#grepping xxl_job status from ps aux
httpd=`ps aux | grep l-job`
if [[ $httpd =~ "xxl-job" ]];then
 echo -e "   Status: ${GREEN}UP${Normal}"
else
 echo -e "   Status: ${RED}DOWN${Normal}"
fi
}

function server_gateway() {
echo -e "${yellow}7) server_gateway${Normal}"
#grepping server-gateway status from ps aux
httpd=`ps aux | grep r-gateway`
if [[ $httpd =~ "server-gateway" ]];then
 echo -e "   Status: ${GREEN}UP${Normal}"
else
 echo -e "   Status: ${RED}DOWN${Normal}"
fi
}

function server_admin() {
echo -e "${yellow}8) server_admin${Normal}"
#grepping server-admin status from ps aux
httpd=`ps aux | grep r-admin`
if [[ $httpd =~ "server-admin" ]];then
 echo -e "   Status: ${GREEN}UP${Normal}"
else
 echo -e "   Status: ${RED}DOWN${Normal}"
fi
}

function server_front() {
echo -e "${yellow}9) server_front${Normal}"
#grepping server-front status from ps aux
httpd=`ps aux | grep r-front`
if [[ $httpd =~ "server-front" ]];then
 echo -e "   Status: ${GREEN}UP${Normal}"
else
 echo -e "   Status: ${RED}DOWN${Normal}"
fi
}

#calling web check functions
xxl_job
echo ""
server_gateway
echo ""
server_admin
echo ""
server_front
echo ""
echo -e "${YELLOW}---------------------------------------------------------------------------------------------------------------${Normal}"

#Sectioning............
#Fetching mem and cpu informations
echo "Memory Details:"
echo -e "${YELLOW}---------------------------------------------------------------------------------------------------------------${Normal}"
sleep 1
#view mem info
free -h
#get uptime details
uptime=$(uptime | awk '{print $3,$4}' | cut -f1 -d,)
echo -e "${cyan}System Uptime:${Normal} :$uptime"
#Fetching the load averageloadaverage=$(top -n 1 -b | grep "load average:" | awk '{print $10 $11 $12}')
echo -e "${cyan}Load average:${Normal}: $loadaverage"
echo -e "${cyan}The top 10 services with high resource usage are listed below.${Normal}"
#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}---------------------------------------------------------------------------------------------------------------${Normal}"
echo "Server space Details:"
echo -e "${YELLOW}---------------------------------------------------------------------------------------------------------------${Normal}"
#View disk space details
df -h
echo "----------------------------------------------------------------------------------------------------------------"

效果如下

[root@ecs-e31a-1110168 ~]# ./jianKang.sh 
---------------------------------------------------------------------------------------------------------------
Server details:
---------------------------------------------------------------------------------------------------------------
User: root
hostname: ecs-e31a-1110168.novalocal
IP address: 192.168.0.232 
OS: NAME="CentOS Linux"
CPE_NAME="cpe:/o:centos:centos:7"
---------------------------------------------------------------------------------------------------------------
5 Service status:
---------------------------------------------------------------------------------------------------------------

1) Nginx
   Status: UP

2) redis
   Status: UP

3) Elasticsearch
   Status: UP

4) Mysql
   Status: UP

5) Nacos
   Status: UP

---------------------------------------------------------------------------------------------------------------
 4 WEB Service status:
---------------------------------------------------------------------------------------------------------------

6) xxl_job
   Status: UP

7) server_gateway
   Status: UP

8) server_admin
   Status: UP

9) server_front
   Status: UP

---------------------------------------------------------------------------------------------------------------
Memory Details:
---------------------------------------------------------------------------------------------------------------
              total        used        free      shared  buff/cache   available
Mem:           7.6G        7.0G        133M        120M        521M        254M
Swap:           11G          0B         11G
System Uptime: :2 days
Load average:: 
The top 10 services with high resource usage are listed below.
  PID  PPID CMD                         %MEM %CPU
 2645     1 /opt/elasticsearch_7.17/jdk 32.4  0.2
29758     1 java -Dspring.config.locati 11.6  0.4
30032     1 java -Dspring.config.locati 11.1  0.5
 6319     1 java -Dspring.config.locati 10.2  0.2
 1924     1 /opt/jdk1.8.0_341//bin/java  9.3  0.4
 1366   739 /usr/local/mysql8.0/bin/mys  7.2  0.3
 6212     1 java -Dspring.config.locati  4.7  0.2
 1049   666 /CloudResetPwdUpdateAgent/d  1.2  0.0
  401     1 /usr/lib/systemd/systemd-jo  0.5  0.0
---------------------------------------------------------------------------------------------------------------
Server space Details:
---------------------------------------------------------------------------------------------------------------
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        3.9G     0  3.9G   0% /dev
tmpfs           3.9G     0  3.9G   0% /dev/shm
tmpfs           3.9G  121M  3.8G   4% /run
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/vda2        46G   18G   26G  42% /
/dev/vdb        493G   22G  446G   5% /data
tmpfs           783M     0  783M   0% /run/user/0
----------------------------------------------------------------------------------------------------------------

数据库备份脚本

#!/bin/bash
# Author: LiJinGang
# Description: Database backup script
#mysqldump,引入配置文件,要不找不到备份命令
source /etc/profile
function dbback(){
# 定义变量
#Using a password on the command line interface can be insecure.
#解决方法修改mysql配置文件
#vim /etc/my.conf
#加入下面内容:
#[mysqldump]
#user=root
#password=你的密码
db_path="/data/bak/1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/17/18/19/20/bakmysql"
db_file="backuprecord"
db_date=`date +%Y%m%d_%H:%M:%S`
# 判断路径是否存在
[ -d $db_path ] || exit 2
# 使用mysqldump备份数据,并用gzip进行压缩
mysqldump  --single-transaction jeecmsx2-advance  | gzip > $db_path/${db_date}_jeecms.sql.gz
REVAL=$?
if [ $REVAL -eq 0 ]
    then
        echo "$db_date jeecms db is backups successful" >>$db_path/$db_file
    else
        echo "$db_date jeecms db is backups failed" >>$db_path/$db_file
fi
}

#删除超过7天的备份数据
function delbak(){
local db_path="/data/bak/1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/17/18/19/20/bakmysql"
find $db_path -type f -name "*jeecms*.gz" -mtime +7 -exec rm -rf {} \;
}
dbback
delbak

输出健康检查日志到txt

#!/bin/bash
source /etc/profile
#DEPLOY_DIR=`pwd`
DEPLOY_DIR=/data/user/back/home/shell
LOGS_DIR=$DEPLOY_DIR/logs
if [ ! -d $LOGS_DIR ]; then
  mkdir $LOGS_DIR
fi
STDOUT_FILE=$LOGS_DIR/`date +%Y_%m_%d`.txt
function out_log(){
echo "---------------------------------------------------------------------------------------------------------------"  >> $STDOUT_FILE
echo "database back details:"  >> $STDOUT_FILE
echo "---------------------------------------------------------------------------------------------------------------"  >> $STDOUT_FILE
cat /data/bak/1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/17/18/19/20/bakmysql/backuprecord >> $STDOUT_FILE
nohup sh $DEPLOY_DIR/jianKang.sh >> $STDOUT_FILE 2>&1 &
}
#删除超过7天的log数据
function delbak(){
local log_path="/data/user/back/home/shell/logs"
find $log_path -type f -name "*.txt" -mtime +7 -exec rm -rf {} \;
}
out_log
delbak

把检查日志发送邮件

#!/bin/bash
source /etc/profile

#目的邮箱
email_sender=18119261688@qq.com

DEPLOY_DIR=/data/user/back/home/shell
LOGS_DIR=$DEPLOY_DIR/logs

STDOUT_FILE=$LOGS_DIR/`date +%Y_%m_%d`.txt
email_title="TYJS_Site_健康检查"`date +%Y_%m_%d`

echo "Tianye Water Saving website health check, website basic service status, web service status, database backup. See attachment for details!" | mail -s $email_title -a $STDOUT_FILE $email_sender 

相关文章

  • kubernetes健康状态检查

    存活性探针( livenessProbe) 判断容器是是否为健康,如果应用程序不能正常响应请求,则标记容器为非健康...

  • nodemanager健康状态检查

    背景 任务堆积产生告警,执行yarn node -list 发现一个node节点都没有,排查日志发现 /data1...

  • 上传项目到svn

    centos7安装svn,把项目上传到svn管理。 svnserve --version 检查svn是否已经安装,...

  • 云计算day11-Kubernetes_K8s

    1. 健康检查 1.1.1 探针的种类 livenessProbe:健康状态检查,周期性检查服务是否存活,检查结果...

  • Linux检查硬盘健康状态

    环境 系统:CentOS 7.9 准备 安装smartctl 检查硬盘健康 查看硬盘信息 检查硬盘健康状态 res...

  • 服务健康检查策略

    一般常见的服务健康检查策略是连续多次服务状态测试成功或失败(如亚马逊或者阿里云均衡负载健康检查),服务健康状态才会...

  • 周报20130524

    一、项目进展 小需求:完善健康检查 功能:完善健康检查,增加对spring容器启动是否完成的检查 进展:已发布 域...

  • spring项目健康检查

    Actuator使用 maven依赖包 配置文件 “*”号代表启用所有的监控端点,可以单独启用,例如,health...

  • 孕前检查很重要

    孕前检查的主要项目: 男方检查项目:包括常规检查,像血常规、尿常规那些,还有肝肾功能和精液检查,都能知道男性的健康...

  • K8S使用就绪和存活探针配置健康检查

    健康检查 健康检查(Health Check)可用于服务运行的状态监控,比如腾讯旗下的DNSPOD的D监控,要求配...

网友评论

      本文标题:Centos7 检查项目健康状态

      本文链接:https://www.haomeiwen.com/subject/hfvjgdtx.html