1
0

hdd.sh 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #!/bin/bash
  2. #########################################################################
  3. # Script for check HDD state #
  4. # Created by Pavol Macko - DoIT #
  5. # ver 0.2 #
  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. SMART=$(smartctl -a /dev/$d | grep "Device Model")
  21. if [ ! -z "$SMART" ];
  22. then
  23. HMOD=$(smartctl -a /dev/$d | grep "Device Model" | awk '{print $3"-"$4"-"$5}' | sed 's/--$//' | sed 's/-$//')
  24. HSER=$(smartctl -a /dev/$d | grep "Serial Number" | awk '{print $NF}')
  25. HCAP=$(smartctl -a /dev/$d | grep "User Capacity" | awk '{print $(NF-1)$NF}')
  26. HROT=$(smartctl -a /dev/$d | grep "Rotation Rate" | awk '{print $3"-"$4}')
  27. HHEA=$(smartctl -H /dev/$d | grep overall-health | awk '{print $NF}')
  28. HERR=$(smartctl -a /dev/$d | grep -i "Error [1-999]" | head -1)
  29. if [ ! -z "$HERR" ]; then ERR="ERROR"; else ERR="OK"; fi
  30. echo "$HMOD $HSER $HCAP $HROT $HHEA $ERR" >> $LOG
  31. fi
  32. done
  33. }
  34. #---------------------------- QUICK-CHECK ------------------------------#
  35. #smartctl -t short /dev/sdb
  36. #------------------------------- CORE ----------------------------------#
  37. checkhdd
  38. cat $LOG | column -t