巡检各个服务器磁盘状态和作业执行状态,服务器状态巡检脚本

功能:1.查看CPU状态 2.内存状态 3.硬盘状态 4.tcp链接状态

#!/bin/bash

#查看服务器状态脚本

cpu() {

#us+sy 用户和系统进程消耗cpu百分比之和

check_cpu=$(vmstat|awk '{if(NR==3) print$13+$14}')

#磁盘io响应使用率

check_io=$(vmstat|awk '{if(NR==3) print$16}')

echo "CPU使用率为$check_cpu%, 磁盘io响应率为$check_io%"

}

memory() {

#总内存,printf 是输出命令 %f格式化为小数,%.1f是后面保留1位小数。如: 1.0,这里/1024是将以G为单位显示

total=$(free -m|awk '{if(NR==2)printf "%.1f",$2/1024 }')

#内存使用量=总量-可用

used=$(free -m|awk '{if(NR==2)printf "%.1f",($2-$NF)/1024 }')

#可用

available=$(free -m|awk '{if(NR==2)printf "%.1f",$NF/1024 }')

echo "内存信息- 总大小为${total}G, 已使用:${used}G,剩余量为${available}G"

}

disk() {

#只看根分区/ 和boot分区。所以要awk去匹配文件系统为/dev/开头的,下面devlist输出/,/boot

#$1代表分区列,如/dev/sda1 $NF-最后一列(代表挂载点一列)如/ /boot

devlist=$(df -h|awk '/^\/dev/{print $1}')

for i in $devlist

do

mouted=$(df -h|awk -v i=$i '$1==i{print $NF}')

size=$(df -h|awk -v i=$i '$1==i{print $2}')

used=$(df -h|awk -v i=$i '$1==i{print $3}')

use_free=$(df -h|awk -v i=$i '$1==i{print $5}')

echo "硬盘信息- 挂载点: $mouted, 总大小: $size,已使用: $used,使用率:$use_free "

done

}

tcp() {

#$6是连接数那一列,将状态名存入awk设定的数组中作为key,数组取名s。++代表每遇到一个key,它的value会累加1,END结束,循环输出键值。

netstat -antp|awk '{s[$6]++}END{for (i in s) print i,"当前连接数为" s[i]}'

}

main() {

echo "----------服务器巡检信息---------------"

cpu

echo "---------------------------------------"

memory

echo "---------------------------------------"

disk

echo "---------------------------------------"

tcp

echo "---------------------------------------"

}

main

脚本中,硬盘部分思路:先df -h查看整体的结构

dfe2e409329c

image.png

awk '/^/dev/{print $1}' awk匹配以dev开头的行,得出/,/boot挂载点的分区列表/dev/开头的(这种分区才是我们自己分的)才是主要查看的。此作为遍历池。

mouted变量是df -h 后用awk -v 赋予变量i 让其等于for循环中的变量i (/dev/sda1等/dev/开头的分区)

后面来判断,当(第一列-分区列)字符==变量i(/dev/sda1等/dev/开头的分区)的时候,符合条件,输出挂载点那一列。这里S1==i是做了一个判断,awk这里可以不加if 直接进行判断

后面的size等,一样的道理。只要是想要的哪一行匹配上了,输出那一行,指定的列。

硬盘部分脚本运行结果

dfe2e409329c

image.png

脚本运行结果:

dfe2e409329c

image.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值