#!/bin/bash ######################################################################### # Script for check HDD state # # Created by Pavol Macko - DoIT # # ver 0.2 # ######################################################################### #------------------------------ 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 SMART=$(smartctl -a /dev/$d | grep "Device Model") if [ ! -z "$SMART" ]; then HMOD=$(smartctl -a /dev/$d | grep "Device Model" | awk '{print $3"-"$4"-"$5}' | sed 's/--$//' | sed 's/-$//') 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 fi done } #---------------------------- QUICK-CHECK ------------------------------# #smartctl -t short /dev/sdb #------------------------------- CORE ----------------------------------# checkhdd cat $LOG | column -t