| 1234567891011121314151617181920212223242526272829303132333435363738 |
- #!/bin/bash
- #########################################################################
- # Script for check HDD state #
- # Created by Pavol Macko - DoIT #
- # ver 0.1 #
- #########################################################################
- #------------------------------ VARIABLES ------------------------------#
- SRV=$(hostname -s)
- LOG=/tmp/hdd.log
- test -f $LOG && rm -rf $LOG
- #------------------------------ HDD-INFO -------------------------------#
- checkhdd(){
- echo -e "- \e[1;32mExtracting\e[0m HDD info from [\e[1;33m$SRV\e[0m]"
- echo "------------------ ---------------- -------- ----------- ------ -----" > $LOG
- echo "MODEL SERIAL SIZE TYPE CHECK STATUS" >> $LOG
- echo "------------------ ---------------- -------- ----------- ------ -----" >> $LOG
- DRI=$(lsblk --nodeps -n -o name -S)
- for d in $DRI;
- do
- HMOD=$(smartctl -a /dev/$d | grep "Device Model" | awk '{print $NF}')
- HSER=$(smartctl -a /dev/$d | grep "Serial Number" | awk '{print $NF}')
- HCAP=$(smartctl -a /dev/$d | grep "User Capacity" | awk '{print $(NF-1)$NF}')
- HROT=$(smartctl -a /dev/$d | grep "Rotation Rate" | awk '{print $3"-"$4}')
- HHEA=$(smartctl -H /dev/$d | grep overall-health | awk '{print $NF}')
- HERR=$(smartctl -a /dev/$d | grep -i "Error [1-999]" | head -1)
- if [ ! -z "$HERR" ]; then ERR="ERROR"; else ERR="OK"; fi
- echo "$HMOD $HSER $HCAP $HROT $HHEA $ERR" >> $LOG
- done
- }
- #---------------------------- QUICK-CHECK ------------------------------#
- #smartctl -t short /dev/sdb
- #------------------------------- CORE ----------------------------------#
- checkhdd
- cat $LOG | column -t
|