一个集成在DRBL内的硬盘检测脚本

#!/bin/bash

#检查硬盘健康状态的函数,主要检查C5和C7两个值

Diskcheck(){

    disknum=$1 #接收参数决定需要检查的磁盘的盘符

    echo "Check $disknum"

    IFS=" " read -r -a C5info <<< "$(smartctl -a /dev/$disknum | grep Current_Pending_Sector)"

    IFS=" " read -r -a C7info <<< "$(smartctl -a /dev/$disknum | grep UDMA_CRC_Error_Count)" #通过smartctl 获取需要检测的两个参数的值,放入数组

    echo "The Value of C5 is ${C5info[9]}"

    echo "The Value of C7 is ${C7info[9]}"  

    if  [[ "${C5info[9]}" -gt "0"  ||  "${C7info[9]}" -gt "0" ]]; then #判断两个值是否为零,不为零即硬盘可能有问题,提示重启检查

            echo -e "\033[31m Your HardDisk has some problem, Please reboot and checkout \033[0m"

            read -p "Press [Enter] key to restart..."

            echo "reboot"

            reboot

    else

      echo -e "\033[31m Hard disk no exception,Continue \033[0m "

    fi

}



disktype=$(cat /sys/block/sda/queue/rotational) #判断sda的盘是机械还是固态,机械数值应为1

if [[ "$disktype" -eq "1" ]]; then #若数值为1说明第一个盘为机械或nvme固态,即检测sda的盘即可

    echo "The First  Disk is HDD or Nvme"

    Diskcheck sda

    sleep 5

else

    echo "The First  Disk is SATA ssd" #否则则是sata接口的固态,即检测sdb的盘

    Diskcheck sdb

    sleep 5

fi

利用smartctl检测机械硬盘的健康状态,将脚本加入DRBL的prerun阶段,可以达到在装机之前检测的效果








 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值