6
Linux下定期检查物理机磁盘的脚本
source link: https://bajie.dev/posts/20231227-megacli_disk/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Linux下定期检查物理机磁盘的脚本
2023-12-27
1 分钟阅读
适用于所有MegaCli的机器。无论dell、浪潮还是H3C。
必须每天上午、下午各检查一下所有物理机的磁盘啊,有问题及时处理。
172.18.31.2 /usr/local/bin/check_disk.sh 脚本:
L1到L5,是5个机柜,从上到下是172.18.x.x的ip分布
#!/bin/bash
L1=(30.1 30.2 30.3 30.4 30.5 30.6 30.7 30.8 30.9 30.10 30.11 30.12 30.13 30.14 30.15 30.16 20.25 30.18)
L2=(30.19 20.23 20.24 20.30 20.31 20.9 20.10 20.37 20.38 20.39 30.29 30.30 20.16 20.17 30.33 30.34 30.35 30.36)
L3=(30.37 20.44 20.45 22.200 30.41 30.42 30.43 30.44 30.45 30.46 30.47 22.201 30.49 30.50 20.51 20.52 20.58 20.59)
L4=(20.65 20.66 30.57 30.58 30.59 30.60 20.1 20.2 30.63 30.64 30.65 30.66 30.67 30.68 30.69 30.70 30.71 30.72)
L5=(30.73 30.74 30.75 30.76)
> /tmp/idrac.txt
> /tmp/idracout.txt
for i in L1 L2 L3 L4 L5
do
var=$i[@]
for j in ${!var}
do
echo "Scan $i 172.18.$j......" >> /tmp/idrac.txt
sshpass -p "xxxxxxxx" ssh -oStrictHostKeyChecking=no [email protected].$j /opt/MegaRAID/MegaCli/MegaCli64 -PDList -a0|grep "S.M.A.R.T" >> /tmp/idrac.txt
done
done
lines=($(grep -n "Yes" /tmp/idrac.txt | cut -f1 -d:))
if [ ${#lines[@]} -eq 0 ]; then
exit 1
else
for findline in ${lines[@]}
do
array=($(grep -n "\.\.\.\.\.\." /tmp/idrac.txt |cut -f1 -d:))
newarray=(${array[*]} ${findline})
sortarray=($(echo ${newarray[@]} | tr ' ' '\n'|sort -n))
for((i=0;i<${#sortarray[*]};i++))
do
if [ ${sortarray[$i]} -eq $findline ];then
beginline=${sortarray[(($i-1))]}
endline=${sortarray[(($i+1))]}
if [ "$endline" == "" ];then
endline="$"
else
endline=$(($endline-1))
fi
break
fi
done
sed -n "$beginline,$endline p" /tmp/idrac.txt >> /tmp/idracout.txt
done
/usr/local/bin/mailsend -to "[email protected]" -from [email protected] -ssl -port 465 -auth -auth-plan -smtp smtp.exmail.qq.com -sub "IDC机器硬件故障" -v -user "[email protected]" -pass "xxxxxxxx" -cs "gb2312" -enc-type "base64" -M "$(cat /tmp/idracout.txt)"
fi
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK