diff --git a/app/Sensor/Disks.php b/app/Sensor/Disks.php index 00e030ffcfdecd9d852806a132d82f99abb54e35..cb638c1b9091ec16e9b110540ae08ade0db7088a 100644 --- a/app/Sensor/Disks.php +++ b/app/Sensor/Disks.php @@ -53,7 +53,7 @@ class Disks extends \App\AbstractSensor return max($all_status); } - public static $skip_fs = ["none", "tmpfs", "shm", "udev", "overlay"]; + public static $skip_fs = ["none", "tmpfs", "shm", "udev", "overlay", '/dev/loop']; public static function parse(string $string) { @@ -63,7 +63,7 @@ class Disks extends \App\AbstractSensor $count = count($values[1]); for ($i = 0; $i < $count; $i++) { $fs = $values[1][$i]; - if (in_array($fs, self::$skip_fs)) { + if (self::shouldSkip($fs)) { continue; } @@ -76,4 +76,20 @@ class Disks extends \App\AbstractSensor } return $partitions; } + + public static function shouldSkip(string $fs) : bool + { + foreach (self::$skip_fs as $should_skip) { + if (self::startsWith($should_skip, $fs)) { + return true; + } + } + + return false; + } + + public static function startsWith(string $needle, string $haystack) : bool + { + return substr($haystack, 0, strlen($needle)) === $needle; + } } diff --git a/app/Sensor/Inodes.php b/app/Sensor/Inodes.php index ccbf41da0240c3fa98dc2659ce2b17e85c7ee9cc..36e2197918bdf952109aa7b4bd2818d4fff74760 100644 --- a/app/Sensor/Inodes.php +++ b/app/Sensor/Inodes.php @@ -61,7 +61,7 @@ class Inodes extends \App\AbstractSensor $count = count($values[1]); for ($i = 0; $i < $count; $i++) { $fs = $values[1][$i]; - if (in_array($fs, Disks::$skip_fs)) { + if (Disks::shouldSkip($fs)) { continue; }