HEX
Server: LiteSpeed
System: Linux s3604.bom1.stableserver.net 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64
User: dmstechonline (1480)
PHP: 7.4.33
Disabled: NONE
Upload Files
File: //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