检测raid类型和磁盘坏道脚本

#!/bin/sh
#脚本功能:
#安装工具MegaCli64
#Host Information:主机名和ip地址
#Raid Information:raid信息和充电状态
#WARNING Information:MediaErrcount检测坏块和哪块盘
#Disk Information:磁盘信息
#上传MegaCli压缩包到opt目录下
Megdir=/opt/MegaRAID/MegaCli/
cd /opt
if [ ! -d $Megdir ];then
unzip MegaCLI.zip
cd 8.07.10_MegaCLI_Linux/Linux\ MegaCLI\ 8.07.10/
rpm -ivh MegaCli-8.07.10-1.noarch.rpm
cp /opt/MegaRAID/MegaCli/MegaCli* /usr/local/sbin
cp /opt/MegaRAID/MegaCli/MegaCli* /usr/sbin
echo "MegaCLI install sucess"
else
echo "MegaCLI already install"
Hostname=`/bin/hostname`
Hostip=`ifconfig | grep broadcast | awk "NR==1" | awk -F" " ‘{print $2}‘`
Battery=`MegaCli64 -AdpBbuCmd -GetBbuStatus -aALL|grep "Charger Status"|awk -F: ‘{print $1" :"$2}‘`
raid=`MegaCli64 -cfgdsply -aALL|grep "RAID Level"|tail -1|awk -F: ‘{print $1" :"$2}‘`
Disknum=`MegaCli64 -cfgdsply -aALL|grep -c "Non Coerced Size"`
Onlinedisk=`MegaCli64 -cfgdsply -aALL | grep "Online" | wc -l | sed ‘s/ //‘`
Faileddisk=`MegaCli64 -AdpAllInfo -aALL | grep "Failed Disks"|awk -F‘ ‘ ‘{print $4}‘`
echo ""
echo "####################### Host Information #########################"
echo "HostName : $Hostname"
echo "HostIp : $Hostip"
echo ""
#raid信息
echo "####################### Raid Information ########################"
case "$raid"
in
"RAID Level : Primary-1, Secondary-0, RAID Level Qualifier-0") echo "Raid Level :Raid 1";;
"RAID Level : Primary-0, Secondary-0, RAID Level Qualifier-0") echo "Raid Level :Raid 0";;
"RAID Level : Primary-5, Secondary-0, RAID Level Qualifier-3") echo "Raid Level :Raid 5";;
"RAID Level : Primary-1, Secondary-3, RAID Level Qualifier-0") echo "Raid Level :Raid 10";;
esac
#充电状态
if [ -z "$Battery" ];then
echo "Battery :Null"
else
echo "$Battery"
fi
echo ""
echo "####################### WARNING Information ########################"
#预警的盘以及位置
CriticalDisk=`/usr/sbin/MegaCli64 -AdpAllInfo -aALL | grep "Critical Disks" | awk ‘{print $4}‘`
if [ $CriticalDisk -eq 0 ];then
echo "Critical Disks is:0"
else
CriDisk=`/usr/sbin/MegaCli64 -AdpAllInfo -aALL| grep -E ‘Predictive|Slot‘ | awk ‘{if(NR%3){printf$0":"}else{print $0}}‘|awk -F‘:‘ ‘{if($4!=0){print $2+1}}‘`
echo "WARNING Critical Disks In:$CriticalDisk"
echo "Sector In:$CriDisk"
fi

#MediaErrcount检测坏块和哪块盘
MediaErrcount=`/usr/sbin/MegaCli64 -pdlist -aALL | grep -E "Media Error" |awk -F’:’ -v errcount=0 ‘{errcount+=$2}END{print errcount}‘`
OtherErrcount=`/usr/sbin/MegaCli64 -pdlist -aALL | grep -E "Other Error" |awk -F’:’ -v errcount=0 ‘{errcount+=$2}END{print errcount}‘`
#坏盘的位置
if [[ $MediaErrcount==0||$OtherErrcount==0 ]];then
mDoD=`/usr/sbin/MegaCli64 -pdlist -aALL |grep -E "Media Error|Other Error|Slot" | awk ‘{if(NR%3){printf$0":"}else{print $0}}‘ | awk -F‘:‘ ‘{if($4!=0||$6!=0){print $2+1}}‘`
echo -e "Bad Block In:
$mDoD"
echo -e "CRITICAL:$MediaErrcount"
else
echo "mediaerr:0 and othererr:0"
fi

echo ""
echo "####################### Disk Information ########################"
echo "Total Disk Number:$Disknum"
echo "Online Disk Number:$Onlinedisk"
echo "Failed Disk Number:$Faileddisk"
echo ""
fi

原文地址:http://blog.51cto.com/chenhao6/2326028

时间: 2024-08-29 22:38:13

检测raid类型和磁盘坏道脚本的相关文章

Linux 磁盘坏道检测和修复

使用dmesg检查是否有关于磁盘错误的信息,果不其然发现大量磁盘扇区错误的信息,如下: end_request: I/O error, dev 03:06 (sda), sector 从上面的输出我们判定扇区可能出现了问题,使用badblocks -s -v -o /root/badblocks.log /dev/sda 检查硬盘是否产生坏道并输出到badblocks.log中.log大约是这样的模式:64039224 64039240 64039241 64039242 64039243 64

  磁盘坏道检查

当磁盘出现以下现象时,有可能是磁盘出现坏道需要进行检查和修复 1.    读取磁盘中的数据时,磁盘设备发出异常声响 2.    访问磁盘中的某个文件时,反复读取且出错,提示文件损坏 3.    对于新建立的分区无法完成格式化 4.    系统使用该磁盘时频繁死机 硬盘出现坏道后,检测磁盘的坏道情况可以使用badblocks命令,结合"-s"选项用于显示进度信息,"-v"选项用于显示详情,列如:执行以下操作可以查看硬盘设备/dev/sdb中德坏道情况 Badblock

检测磁盘坏道并忽略方式挂载注意的细节

/dev/sda2? ? ? ? ? ? 591467212 237121952 323815736? 43% / tmpfs? ? ? ? ? ? ? ? ? 4149320? ? ? ? ?0? ?4149320? ?0% /dev/shm /dev/sda1? ? ? ? ? ? 117927380? ? ?11016 111829340? ?1% /boot 使用命令badblocks -s -v -o /root/sda1_blocks.txt /dev/sda可以检测/dev/sda

centos出现磁盘坏道,怎么检索和修复

故障现象,在/var/log/message这个目录中出现下面的error: [24934098.161918] Buffer I/O error on device sdaj, logical block 4 [24934098.161921] Buffer I/O error on device sdaj, logical block 5 [24934098.161922] Buffer I/O error on device sdaj, logical block 6 [24934098.

怎么用HD Tune检测硬盘坏道

HD Tune软件不仅小巧而且很易使用,是一款检测电脑硬盘的优良工具.不仅是电脑硬盘,包括移动硬盘在内一样可以检测.那么,如何使用HD Tune呢?如何使用HD Tune检测磁盘坏道呢? 工具/原料 HD Tune软件一枚 使用HD Tune检查硬盘坏道 1.百度搜索下载HD Tune软件,注意:尽量选择系统之家官网上下载这类软件,因为系统之家上的软件不会捆绑的流氓软件 2.软件打开之后,界面如图,最上方显示硬盘的厂家信息,图示红色遮挡区 3.点击选项卡切换至错误扫描,如图,然后在红框位置,尽量

Linux上检测硬盘上的坏道和坏块

                            Linux上检测硬盘上的坏道和坏块 让我们从坏道和坏块的定义开始说起,它们是一块磁盘或闪存上不再能够被读写的部分,一般是由于磁盘表面特定的物理损坏或闪存晶体管失效导致的. 磁盘坏道分为三种: 0磁道坏道,逻辑坏道,硬盘坏道. 其中逻辑坏道可以使用上面的方法修复,0磁道坏道的修复方法是隔离0磁道,使用fdsk划分区的时候从1磁道开始划分区.如果是硬盘坏道的话,只能隔离不能修复.硬盘坏道的监测方法:使用上述方法检测修复后,再使用badblock

linux服务器磁盘坏道的发现及解决全过程

服务器的磁盘也没有做监控,其实我也不知道如何对磁盘的状态做监控,突然查看不到新数据,上去看了一下磁盘的情况,发现磁盘出现只读的情况,无法写入数据,要是大家谁知道怎么可以监控磁盘只读的方法,可以告诉我下,来个高达上一些的. 一.处理过程 1.磁盘坏道检查 出现问题之后,首先把业务停掉了,然后把磁盘卸载掉来进行修复,出现这种问题有可能是磁盘的磁道有坏区,我首先检查了一下磁盘坏道的情况. badblocks -sv /dev/sdb 差不多检查了一些时间,发现并没有坏道. 2.修复磁盘文件系统 在修复

centos7-硬盘坏道检测

#检测坏道命令,结果输出到 /home/badblocks.log badblock -s -v -o /home/badblocks.log /dev/sdb1 [注]:硬盘损坏程度不同,block.log文件可能很大,对3T硬盘检测log有9G大,执行前需评估下空间问题. ------------------------------------------------- [参考] centos出现磁盘坏掉,怎么修复和检测 http://www.cnblogs.com/perry-monk/p

centos出现磁盘坏掉,怎么修复和检测。

当dmesg的时候,出现下面的信息说明磁盘有问题 Info fld=0x139066d0 end_request: I/O error, dev sda, sector 328230608 Buffer I/O error on device sda, logical block 41028826 sd 0:0:0:0: SCSI error: return code = 0x08000002 sda: Current: sense key: Medium Error Add. Sense: U