Add Drive Health (gustav0ar/drive-health) (#58)
* add Drive Health * declare optional package manager commands * use live Drive Health screenshot * hide redundant dependency subtitle * fix drive error counter alerts * stabilize transient SMART availability * address collector packaging review * refactor: use generic collector service name * test: harden collector packaging checks
This commit is contained in:
Executable
+35
@@ -0,0 +1,35 @@
|
||||
#!/bin/sh
|
||||
set -eu
|
||||
|
||||
if [ "$(id -u)" -ne 0 ]; then
|
||||
echo "Run this SMART action as root." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
action=${1:-}
|
||||
device=${2:-}
|
||||
case "$action" in
|
||||
short|long) ;;
|
||||
*)
|
||||
echo "usage: $0 {short|long} DEVICE" >&2
|
||||
exit 2
|
||||
;;
|
||||
esac
|
||||
|
||||
case "$device" in
|
||||
/dev/nvme[0-9]* )
|
||||
[ -c "$device" ] || { echo "Not an NVMe controller: $device" >&2; exit 2; }
|
||||
;;
|
||||
/dev/* )
|
||||
[ -b "$device" ] || { echo "Not a block device: $device" >&2; exit 2; }
|
||||
[ "$(lsblk --nodeps --noheadings --output TYPE "$device" 2>/dev/null | tr -d ' ')" = "disk" ] \
|
||||
|| { echo "SMART tests require a whole disk: $device" >&2; exit 2; }
|
||||
;;
|
||||
*)
|
||||
echo "Device must be an absolute /dev path." >&2
|
||||
exit 2
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "Starting the $action SMART self-test on $device"
|
||||
exec smartctl --test="$action" "$device"
|
||||
Reference in New Issue
Block a user