主页 > 手机  > 

centos服务器巡检脚本

centos服务器巡检脚本

服务器巡检脚本 系统负载shell脚本python将txt文件转换成excel,不正常巡检结果标记红色

系统负载shell脚本 #!/bin/bash #文件路径 path="/root/monitor.txt" #yum -y install bc sysstat net-tools lrzsz #获取主机名 system_hostname=$(hostname | awk '{print $1}') #获取服务器IP system_ip=$(ip a|grep "global"|awk '{print $2}' |awk -F/ '{print $1}') #获取服务器系统 system=$(cat /etc/os-release | grep "^NAME" | awk -F\" '{print $2}') #获取服务器系统版本 version=$(cat /etc/redhat-release | awk '{print $4$5}') #获取总内存 #free -m|awk '/Mem/ {printf ("%.f\n",$2/1024)}' mem_total=$(free -m | grep Mem| awk -F " " '{print $2}') #获取已用内存 mem_use=$(free -m | grep Mem| awk -F " " '{print $3}') #获取可用内存 mem_free=$(free -m | grep "Mem" | awk '{print $7}') #取CPU核数 Cpu_num=`grep processor /proc/cpuinfo|wc -l` #cpu使用率 Cpu_use=`top -n 1 -b |grep 'Cpu(s)' |awk '{print $2}'` #获取当前平均一分钟负载 load_1=`uptime | awk '{print $11}' | sed -e 's/\,//g' | awk -F " " '{print $1}'` #获取当前平均五分钟负载 load_5=`uptime | awk '{print $12}' | sed -e 's/\,//g' | awk -F " " '{print $1}'` #获取当前平均十五分钟负载 load_15=`uptime | awk '{print $13}'` #磁盘I/O disk_io=`iostat -d -x -k 1 1 | grep -Ev "^$|Linux|Device"| grep vda| awk '{print $1,$14"ms"}'` #过滤磁盘使用率大于50%目录,并加入描述 disk_1=$(df -Ph | awk '{if(+$5>50) print "分区:"$1,"总空间:"$2,"使用空间:"$3,"剩余空间:"$4,"磁盘使用率:"$5}') #拆分 disk_fq=$(df -h | grep "root" | awk '{print "分区:"$1}') disk_to=$(df -Ph | grep "root" | awk '{print "总空间:"$2}') disk_us=$(df -Ph | grep "root" | awk '{print "使用空间:"$3}') disk_fe=$(df -Ph | grep "root" | awk '{print "剩余空间:"$4}') disk_ul=$(df -Ph | grep "root" | awk '{print "磁盘使用率:"$5}') disk_ux=$(df -Ph | grep "root" | awk '{print $5}') #内存阈值 mem_mo='50' echo -e " " > $path echo -e "主机名:"$system_hostname >> $path echo -e "服务器IP:"$system_ip >> $path echo -e "服务器系统:"$system >> $path echo -e "服务器系统版本:"$version >> $path echo -e "总内存:"$mem_total >> $path echo -e "已使用内存:"$mem_use >> $path echo -e "可用内存:"$mem_free >> $path echo -e "cpu核数:"$Cpu_num >> $path echo -e "cpu使用率:"$Cpu_use >> $path echo -e "磁盘IO:"$disk_io >> $path if [[ $(echo $disk_ux | sed s/%//g) -gt 50 ]] then echo $disk_fq >>$path echo $disk_to >>$path echo $disk_us >>$path echo $disk_fe >>$path echo $disk_ul >>$path echo 磁盘巡检状态:不正常 >>$path else echo $disk_fq >>$path echo $disk_to >>$path echo $disk_us >>$path echo $disk_fe >>$path echo $disk_ul >>$path echo 磁盘巡检状态:正常 >>$path fi PERCENT=$(printf "%d%%" $(($mem_use*100/$mem_total))) PERCENT_1=$(echo $PERCENT|sed 's/%//g') if [[ $PERCENT_1 -gt $mem_mo ]] then echo -e 总内存大小:$mem_total MB>> $path echo -e 已用内存:$mem_use MB >> $path echo -e 内存剩余大小:$mem_free MB >> $path echo -e 内存使用率:$PERCENT >> $path echo -e 内存巡检状态:不正常 >> $path else echo -e 总内存大小:$mem_total MB>> $path echo -e 已用内存:$mem_use MB >> $path echo -e 内存剩余大小:$mem_free MB >> $path echo -e 内存使用率:$PERCENT >> $path echo 内存巡检状态:正常 >> $path fi echo -e 平均1分钟负载:$load_1"\n"平均5分钟负载:$load_5"\n"平均15分钟:$load_15 >> $path

执行脚本后会在/root 目录生成monitor.txt

python将txt文件转换成excel,不正常巡检结果标记红色 #!/usr/bin/python # -*- coding: UTF-8 -*- #使用环境python2.7 import xlwt import datetime style = "font:colour_index red; align: wrap on, vert centre, horiz center;" styleb = xlwt.XFStyle() # 创建一个样式对象,初始化样式 al = xlwt.Alignment() al.horz = 0x02 # 设置水平居中 al.vert = 0x01 # 设置垂直居中 styleb.alignment = al red_style = xlwt.easyxf(style) title_style = xlwt.easyxf('font: height 200, name Arial Black, colour_index blue, bold on; align: wrap on, vert centre, horiz center;') def getlist(): # 读取txt with open('/root/monitor.txt', 'r+') as f: s1 = f.readlines() f.close() s2 = [] for i in s1: if '\n' in i: s2.append(i[:-1]) else: s2.append(i) return s2 def fenge(): # 分割 list0 = [] # 存贮空格行 for num, val0 in enumerate(getlist()): if val0.split(':')[0] == '主机名': list0.append(num) list0.append(len(getlist())) list1 = [] # 存贮内容 for num1, val1 in enumerate(list0[1:]): temp = getlist()[list0[num1]:list0[num1+1]] list1.append(temp) return list1 def wxls(): # 写入表格 title = ['主机名', '服务器IP', '服务器系统', '服务器系统版本', '分区', '总空间', '使用空间', '剩余空间', '磁盘使用率', '磁盘巡检状态', '总内存大小', '已用内存', '内存剩余大小', '内存使用率', '内存巡检状态', 'cpu核数', 'cpu使用率', '磁盘IO', '平均1分钟负载', '平均5分钟负载', '平均15分钟', '备注'] workbook = xlwt.Workbook(encoding='utf-8') worksheet = workbook.add_sheet('sheet1') for i1, val in enumerate(title): worksheet.write(0, i1, label=val, style=title_style) first_col = worksheet.col(i1) first_col.width = 180 * 20 for i2, val2 in enumerate(title): for i3, val3 in enumerate(fenge()): for j in val3: if j.split(':')[0] == val2: if j.split(':')[1] == '不正常': worksheet.write(i3 + 1, i2, label=j.split(':')[1], style=red_style) else: worksheet.write(i3+1, i2, label=j.split(':')[1], style=styleb) name = 'miontior.xls' workbook.save(name) wxls()
标签:

centos服务器巡检脚本由讯客互联手机栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“centos服务器巡检脚本