ansitest/SMART/smart-osx.sh
2021-04-08 09:43:12 -05:00

87 lines
2.2 KiB
Bash

#!/bin/bash
# Mod for OSX 2019.0317
# runs monthly from crontab
PATH=/sbin:/var/root/bin:/var/root/bin/boojum:/usr/local/bin:/usr/local/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin
debugg=0
log=$HOME/smartlog-boojum.log
mv -v -f $log $log--old
DBS=/var/run/disk/by-serial
#source ~/bin/failexit.mrg
# failexit.mrg
function failexit () {
echo '! Something failed! Code: '"$1 $2" # code # (and optional description)
exit $1
}
if [ "$1" = "stage2" ]; then
myd=$(date)
echo "=========================================" |tee -a $log
echo "o BEGIN STAGE2 SMART OSX report: $myd" |tee -a $log
# only lv out total if @begin
# i = longform NewerTch__Voyage-WDH0SB5N
for i in $(ls $DBS |egrep -v 'disk.s.|^total|:'); do
# drvonly=`echo $i |awk -F/ '{ print $3 }'` # disk0
devdisk=$(ls -l $DBS/$i |awk '{print $(NF)}') # /dev/disk9s9
# bid=`ls -l /dev/disk/by-id |grep $drvonly |grep -v part`
echo "$i = $devdisk" |tee -a $log
# echo "$bid" |tee -a $log
# fdisk -l $i |tee -a $log
diskutil list $devdisk |tee -a $log
smartctl -a $devdisk |tee -a $log
done
echo "=========================================" |tee -a $log
echo "o END STAGE2 SMART OSX report: $myd" |tee -a $log
# run in BG
smart-osx-shortreport.sh &
exit 0; # skip test
fi
# (to syslog)
logger "FYI -- SMARTCTL testing of all drives are in progress - see $log"
echo "=========================================" |tee -a $log
echo "o BEGIN STAGE1 SMART OSX testing: $myd" |tee -a $log
# SMART testing
ls -l $DBS |egrep -v 'disk.s.|^total' > /tmp/boojum-smart-in.txt
awk '{ print $9" "$11 }' /tmp/boojum-smart-in.txt > /tmp/boojum-smart-in-edit.txt
while read -r inline; do
[ $debugg -gt 0 ] && set -x
#OIFS=$IFS
#IFS=
#`echo -e \n`
drvonly=$(echo "$inline" |awk -F\/ '{ print $3 }') # disk0
bid=$(echo "$inline" |awk '{ print $(NF-2) }') || failexit 101 "Invalid bid"
# Numfields -2 = Portable...
echo "$inline = $bid" |tee -a $log
# /sbin/fdisk -l $i |tee -a $log
diskutil list $drvonly |tee -a $log
#read -n 1
smartctl -t long $drvonly |tee -a $log
#IFS=$OIFS
done < /tmp/boojum-smart-in-edit.txt
echo "=========================================" |tee -a $log