#!/usr/bin/php
<?php

exit(hdd_failure() ? 1 : 0);

function hdd_failure() {
	// Alter Code (erkennt nur Schäden an RAID-1, nicht aber an RAID-0)
	// Dieser Code müsste zwar obsolet sein, aber wir behalten ihn mal drinnen, nur zur Sicherheit, dass wir doppelt abgesichert sind
	if (strpos(file_get_contents('/proc/mdstat'), '_') !== false) return true;

	// Der folgende Code akzeptiert auch Stripe Laufwerke ( https://superuser.com/questions/1368685/programmatically-check-linux-raid-array-md )
	/*
	exec("sudo mdadm --detail /dev/md/* | grep -e '^\\s*State : ' | awk '{ print \$NF; }' | grep -vE '^clean\$|^active\$'", $out, $ec);
	// $ec == 0 : grep hat etwas gefunden, das nicht active oder clean ist.
	// $ec == 1 : grep konnte nichts finden, das nicht active oder clean ist, (also ist alles ok)
	// $ec == 2 : es gab ein fehler bei grep
	return $ec != 1;
	*/

	// Dieser Code prüft den Status der Laufwerke und nicht den Array State
	// siehe auch https://superuser.com/questions/1368685/programmatically-check-linux-raid-array-md
	exec("/daten/vnag/plugins/mdstat/check_mdstat", $out, $ec);
	return $ec != 0;
}

