Centos7 檢查項目健康狀態(tài)

啥也不說了樱拴,直接上腳本性锭,簡單粗暴

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

數(shù)據(jù)庫備份腳本

#!/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
#加入下面內(nèi)容:
#[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備份數(shù)據(jù),并用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天的備份數(shù)據(jù)
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數(shù)據(jù)
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

把檢查日志發(fā)送郵件

#!/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 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末结洼,一起剝皮案震驚了整個濱河市黎做,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌补君,老刑警劉巖引几,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異挽铁,居然都是意外死亡伟桅,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門叽掘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來楣铁,“玉大人,你說我怎么就攤上這事更扁「峭螅” “怎么了赫冬?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長溃列。 經(jīng)常有香客問我劲厌,道長,這世上最難降的妖魔是什么听隐? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任补鼻,我火速辦了婚禮,結(jié)果婚禮上雅任,老公的妹妹穿的比我還像新娘风范。我一直安慰自己,他們只是感情好沪么,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布硼婿。 她就那樣靜靜地躺著,像睡著了一般禽车。 火紅的嫁衣襯著肌膚如雪寇漫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天殉摔,我揣著相機與錄音猪腕,去河邊找鬼。 笑死钦勘,一個胖子當著我的面吹牛陋葡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播彻采,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼腐缤,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了肛响?” 一聲冷哼從身側(cè)響起岭粤,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎特笋,沒想到半個月后剃浇,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡猎物,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年虎囚,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蔫磨。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡淘讥,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出堤如,到底是詐尸還是另有隱情蒲列,我是刑警寧澤窒朋,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站蝗岖,受9級特大地震影響侥猩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜抵赢,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一拭宁、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧瓣俯,春花似錦、人聲如沸兵怯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽媒区。三九已至驼仪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間袜漩,已是汗流浹背绪爸。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留宙攻,地道東北人奠货。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像座掘,于是被迫代替她去往敵國和親递惋。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容