Linux Health Check Scripts

网友投稿 663 2022-09-03

Linux Health Check Scripts

Linux Health Check Scripts

针对Linux的检查,编写了shell脚本,如下:

#!/bin/sh################################################################################################################Script name: linuxHealthCheck.sh#Script description: for Linux Health Check#Current Release Version: 1.0.0#Script Owner: hbhe0316#Latest editor: hbhe0316#Support platform: Linux OS for redhat and centos.#Date: 2021/10/15---first Version for linuxHealthCheck.sh.#Change log:#Descript:sh linuxHealthCheck.sh################################################################################################################export LANG=en_USosbox=`uname`RHversion=$(cat /proc/version | sed 's/[^0-9]//g' | cut -b -3)###打印日志函数log_info(){ DATE_N=`date "+%Y-%m-%d %H:%M:%S"` USER_N=`whoami` echo "${DATE_N} ${USER_N} execute $0 [INFO] $@" }log_error(){ DATE_N=`date "+%Y-%m-%d %H:%M:%S"` USER_N=`whoami` echo -e "/033[41;37m ${DATE_N} ${USER_N} execute $0 [ERROR] $@ /033[0m" }fn_log(){ if [[ $? -eq 0 ]];then log_info "$@ sucessed." echo -e "/033[32m $@ sucessed. /033[0m" else log_error "$@ failed." echo -e "/033[41;37m $@ failed. /033[0m" fi}checkExecuteUser(){ uid=`id -u` if [[ $uid == 0 ]];then continue else fn_log "Current excute user is not root ,shell will exist." exit 1 fi}###Create /tmp/log if not exist.mkdirLogPath(){ if [[ ! -d /tmp/log ]];then mkdir -p /tmp/log chmod 767 /tmp/log fi CheckLinuxLogPath="/tmp/log" CheckLinuxLog=`hostname`_$(date +%y%m%d).txt }###Get OS Arch Linux or notgetOsArch(){ if [[ "$osbox" == "Linux" ]];then continue else fn_log "Current OS is $osbox,shell is exit now." echo 0 exit 0 fi}###Get redhat or centosgetOsCentosOrRedhat(){ cat /proc/version | grep -iE "redhat|centos" > /dev/null if [[ $? == 0 ]];then continue else echo "Current OS is not centos or redhat." echo 1 exit 1 fi}networkinfo(){#先过滤网卡名称,存到数组DEVNAME中 DEVNAME=(`ifconfig | grep ^[a-z] | awk -F: '{print $1}'`)#在拿到IP地址,存到数组IPADDR中 IPADDR=(`ifconfig | grep 'inet' | sed 's/^.*inet //g' | sed 's/ *netmask.*$//g' | grep -v "inet6"`)##get RX RX=(`ifconfig | grep 'RX' | awk '{print $3/1024/1024}'`) TX=(`ifconfig | grep 'TX' | awk '{print $3/1024/1024}'`) RX_ERROR=(`ifconfig | grep "RX errors" | awk -F ' ' {'print $3'}`) TX_ERROR=(`ifconfig | grep "TX errors" | awk -F ' ' {'print $3'}`) for ((i=0;i<${#DEVNAME[@]};i++)) do echo ${DEVNAME[$i]} ${IPADDR[$i]} ${RX[$i]} ${TX[$i]} ${RX_ERROR[$i]} ${TX_ERROR[$i]} done}osSystem(){ os_type=`uname` echo "Current System is:$os_type" os_banben=`cat /etc/redhat-release` echo "Current System Version is:$os_banben" os_neihe=`uname -r` echo "Current System Kernel is:$os_neihe" os_time=`date +%F_%T` echo "Current System Time is:$os_time" os_last=`uptime |awk '{print $3}'` echo "Current System Last Reboot Time is:$os_last Days." os_hostname=`hostname` echo "Current System Hostname is:$os_hostname"}#硬件信息cpuInfo(){ #cpu的物理个数 #cpu_phy=`cat /proc/cpuinfo | grep "physical id" | wc -l` #echo "当前系统物理cpu为:$cpu_phy" #cpu的核心数 #cpu_core=`cat /proc/cpuinfo | grep "core" | wc -l` #echo "当前系统cpu核心数为:$cpu_core" #cpu的型号 #cpu_model=`cat /proc/cpuinfo | grep "model" | sed -n '2p' | awk -F : '{print $2}'` #echo "当前系统cpu型号是:$cpu_model" cpu_idle=$(top -b -n 1 | grep Cpu | awk '{print $2}' | cut -f 1 -d ".") if [[ "$cpu_idle" -gt 80 ]]; then echo "Check System CPU used is geater than 80%,warning." else echo "Check System CPU used is $cpu_idle%,success." fi}##内存信息memInfo(){ mem_total=`free -m | grep Mem | awk '{print $2}'`# echo "内存总大小为:$mem_total" mem_used=`free -m | grep Mem | awk '{print $3}'`# echo "已使用内存为:$mem_used" mem_free=`free -m | grep Mem | awk '{print $4}'`# echo "剩余内存为:$mem_free" #百分比 mem_used_percent=`echo "scale=2;$mem_used/$mem_total*100"|bc` mem_used_percent=`echo $mem_used_percent | awk -F '.' {'print $1'}`# echo "已使用内存百分比为:$mem_used_percent" if [[ $mem_used_percent -gt 80 ]];then echo "Check System have memory used percent geater than 80%,warning." else echo "Check System have memory used percent is $mem_used_percent%,success." fi}swapInfo(){ swap_total=`free -m | grep Swap | awk '{print $2}'` swap_used=`free -m | grep Swap | awk '{print $3}'` swap_used_percent=`echo "scale=2;$swap_used/$swap_total*100"|bc` swap_used_percent=`echo $swap_used_percent | awk -F '.' {'print $1'}` if [[ $swap_used_percent -gt 80 ]];then echo "Check System have swap used percent geater than 80%,warning." else echo "Check Swap Used is $swap_used_percent%,success." fi}##get df -h infomationdfInfo(){ percent=`df -h | awk '{print int($5)}'` for each_one in $percent do if [[ $each_one -gt 80 ]];then echo "Check System have filedisk used geater than 80%,warning." else echo "Check File System success." fi done}userLogin(){ userNum=`uptime |awk '{print $6}'` if [[ $userNum -gt 3 ]];then echo "Check System User Login Number is greater than 3,warning." else echo "Check Current User Login is $userNum,success." fi}checkDefunct(){ DefunctNum=`ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]' | wc -l` if [[ $DefunctNum == 0 ]];then echo "Check Defunct process,success." else echo "Check System have Defunct process,warning." fi}checkIOInfo(){ IOPercent=`iostat | head -4 | awk 'END {print}' | awk -F ' ' {'print $6'} | sed 's/[ /t]//g'` IOPercent=`echo $IOPercent | awk -F '.' {'print $1'}` if [[ $IOPercent -lt 70 ]];then echo "Check System is letter than 70%,warning." else echo "Check iostat is $IOPercent%,success." fi}checkNtp(){ ntpstat > /dev/null 2>&1 if [[ $? == 0 ]];then echo "Check ntp status success." else echo "Check ntp status warning." fi}main(){ checkExecuteUser getOsArch getOsCentosOrRedhat mkdirLogPath osSystem cpuInfo memInfo swapInfo dfInfo checkIOInfo# networkinfo userLogin checkDefunct checkNtp}main

oracle,linux

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:[Vue]如何在vscode cloud toolKit中使用webpack/node
下一篇:[redis]如何使用docker安装redis
相关文章

 发表评论

暂时没有评论,来抢沙发吧~