1
0

hdd.sh 1.7 KB

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