File: //usr/lib64/nagios/plugins/check_a2_dedi_nvme.mdedi
#!/bin/bash
# SYSENG-27972 - Find if M.2/U.2 drives are used correctly
#
raid_array=$(ls -l /dev/md/root | grep -o "md[0-9]\+")
drives_array=($(mdadm --detail /dev/"${raid_array}" | grep "dev/nvme" | awk '{print $NF}' | sed 's/p[0-9]*$//'))
for drive in "${drives_array[@]}"; do
if nvme id-ctrl 2>/dev/null "${drive}" | grep subnqn | grep -q M.2; then
os_drive_wrong=${drive}
backup_drive=$(df -h | grep "/backup" | awk '{print $1}' | sed 's/p[0-9]*$//')
if ! nvme id-ctrl 2>/dev/null "${backup_drive}" | grep subnqn | grep -q M.2; then
backup_drive_wrong=${backup_drive}
fi
fi
done
if [[ -n "${os_drive_wrong}" ]] && [[ -n "${backup_drive_wrong}" ]]; then
echo "check_dedi_nvme - ${os_drive_wrong}(M.2) should be backup drive and ${backup_drive_wrong}(U.2) should be OS drive"
exit 2
else
echo "check_dedi_nvme - M2,U2 nvme drives state is good"
exit 0
fi