2021-01-22 21:49:23 +00:00
|
|
|
#!/bin/bash
|
|
|
|
# license: gpl-3
|
|
|
|
|
|
|
|
if [[ $(curl -s https://raw.githubusercontent.com/byReqz/stocheck/main/stocheck.sh | md5sum | cut -c -32) != $(md5sum $0 | cut -c -32) ]] && [[ -z $1 ]] || [[ $(curl -s https://raw.githubusercontent.com/byReqz/stocheck/main/stocheck.sh | md5sum | cut -c -32) != $(md5sum $0 | cut -c -32) ]] && [[ $1 != "--update" ]] || [[ $(curl -s https://raw.githubusercontent.com/byReqz/stocheck/main/stocheck.sh | md5sum | cut -c -32) != $(md5sum $0 | cut -c -32) ]] && [[ $1 != "-u" ]];then
|
|
|
|
echo "#############################################"
|
|
|
|
echo -e "\e[4mnote: newer version detected, use -u to update\e[0m"
|
|
|
|
echo "#############################################"
|
|
|
|
echo ""
|
|
|
|
fi
|
|
|
|
while [ ! -n "$1" ]; do
|
2021-01-23 20:35:30 +00:00
|
|
|
raidcheck="$(lspci | grep RAID)"
|
|
|
|
if [[ -z "$raidcheck" ]];then
|
|
|
|
if [[ -n $(ls /sys/block | grep sd) ]];then
|
|
|
|
echo "=== sata drive check: ==="
|
|
|
|
for x in {a..z};do
|
|
|
|
scan=$(smartctl --scan)
|
|
|
|
if [[ -n $(echo $scan | grep /dev/sd$x) ]];then
|
|
|
|
echo "------------------- /dev/sd$x --------------------"
|
|
|
|
smartctl -H -i /dev/sd$x;
|
|
|
|
echo "-------------------------------------------------"
|
|
|
|
fi
|
|
|
|
done
|
2021-01-23 23:42:16 +00:00
|
|
|
fi
|
2021-01-23 20:35:30 +00:00
|
|
|
if [[ -n $(ls /dev | grep nvme) ]];then
|
|
|
|
echo "=== nvme drive check: ==="
|
|
|
|
for x in {0..4};do
|
|
|
|
scan=$(smartctl --scan)
|
|
|
|
if [[ -n $(echo $scan | grep /dev/nvme$x) ]];then
|
|
|
|
echo "------------------- /dev/nvme$x --------------------"
|
|
|
|
smartctl -H -i /dev/nvme$x;
|
|
|
|
echo "---------------------------------------------------"
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
fi
|
2021-01-23 23:42:16 +00:00
|
|
|
if [[ -n $(ls /dev | grep nvme) ]] || if [[ -n $(ls /sys/block | grep sd) ]];then
|
|
|
|
exit
|
2021-01-23 20:35:30 +00:00
|
|
|
fi
|
2021-01-23 23:42:16 +00:00
|
|
|
fi
|
2021-01-23 20:35:30 +00:00
|
|
|
if [[ "$raidcheck" =~ "3ware" ]];then
|
|
|
|
echo "3ware raid-controller detected"
|
|
|
|
dreiware=$(tw_cli show | grep c | cut -c -3)
|
|
|
|
echo "------------------- 3ware controller: $dreiware --------------------"
|
|
|
|
tw_cli /$dreiware show
|
|
|
|
echo "---------------------------------------------------------------"
|
|
|
|
dreiwareversion=$(ls /dev/ | grep t)
|
|
|
|
if [[ -n $(echo $dreiwareversion | grep twe0) ]];then
|
|
|
|
echo "6000/7000/8000 series controller detected"
|
|
|
|
echo "---------------------------------------------------------------"
|
|
|
|
dreiwaredrives=$(tw_cli /$dreiware show | grep p | cut -c -3)
|
|
|
|
echo "=== sata drive check: ==="
|
|
|
|
for x in {0..20};do
|
|
|
|
if [[ -n $(echo $dreiwaredrives | grep p$x) ]];then
|
|
|
|
echo "------------------- p$x --------------------"
|
|
|
|
smartctl -a -d 3ware,p$x /dev/twe0
|
|
|
|
echo "-------------------------------------------"
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
elif [[ -n $(echo $dreiwareversion | grep twa0) ]];then
|
|
|
|
echo "9000 series controller detected"
|
|
|
|
echo "---------------------------------------------------------------"
|
|
|
|
dreiwaredrives=$(tw_cli /$dreiware show | grep p | cut -c -3)
|
|
|
|
echo "=== sata drive check: ==="
|
|
|
|
for x in {0..20};do
|
|
|
|
if [[ -n $(echo $dreiwaredrives | grep p$x) ]];then
|
|
|
|
echo "------------------- p$x --------------------"
|
|
|
|
smartctl -a -d 3ware,p$x /dev/twa0
|
|
|
|
echo "-------------------------------------------"
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
elif [[ -n $(echo $dreiwareversion | grep twl0) ]];then
|
|
|
|
echo "9750 series controller detected"
|
|
|
|
echo "---------------------------------------------------------------"
|
|
|
|
dreiwaredrives=$(tw_cli /$dreiware show | grep p | cut -c -3)
|
|
|
|
echo "=== sata drive check: ==="
|
|
|
|
for x in {0..20};do
|
|
|
|
if [[ -n $(echo $dreiwaredrives | grep p$x) ]];then
|
|
|
|
echo "------------------- p$x --------------------"
|
|
|
|
smartctl -a -d 3ware,p$x /dev/twl0
|
|
|
|
echo "-------------------------------------------"
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
else
|
|
|
|
echo "reading smart values for this controller series is not supported"
|
|
|
|
exit
|
|
|
|
fi
|
|
|
|
#adding further controllers here
|
|
|
|
fi
|
2021-01-23 23:42:16 +00:00
|
|
|
done
|
2021-01-22 21:49:23 +00:00
|
|
|
while [ ! -z "$1" ]; do
|
|
|
|
if [[ $1 == "-u" ]] || [[ "$1" == "--update" ]];then
|
|
|
|
if [[ $(curl -s https://raw.githubusercontent.com/byReqz/stocheck/main/stocheck.sh | md5sum | cut -c -32) != $(md5sum $0 | cut -c -32) ]];then
|
|
|
|
wget -O $0 --quiet "https://raw.githubusercontent.com/byReqz/stocheck/main/stocheck.sh"
|
|
|
|
echo "#############################################"
|
|
|
|
echo -e "\e[4mscript has been updated to the newest version\e[0m"
|
|
|
|
echo "#############################################"
|
|
|
|
exit
|
|
|
|
elif [[ $(curl -s https://raw.githubusercontent.com/byReqz/stocheck/main/stocheck.sh | md5sum | cut -c -32) = $(md5sum $0 | cut -c -32) ]];then
|
|
|
|
echo "#############################################"
|
|
|
|
echo "no newer version found"
|
|
|
|
echo "#############################################"
|
|
|
|
exit
|
|
|
|
fi
|
2021-01-22 22:02:23 +00:00
|
|
|
elif [[ "$1" == "--help" ]] || [[ "$1" == "-h" ]];then
|
|
|
|
echo "Usage: $0 (options) <ip> (y/n)"
|
|
|
|
echo "Options:"
|
|
|
|
echo " -u/--update -- update the script"
|
|
|
|
echo " -h/--help -- show help"
|
|
|
|
exit
|
2021-01-22 21:49:23 +00:00
|
|
|
fi
|
2021-01-23 20:35:30 +00:00
|
|
|
done
|