#!/usr/bin/perl ################################ # Raid status check for nagios # ################################ use strict; use warnings; my @Zeilen = (""); my $status = 3; # Wenn kein Status dann 3 (UNKNOWN) open(DATEN, ") { if($zeile =~ m/OPTIMAL/g){ exit "0"; } if($zeile =~ m/ONLINE/g){ my ($phy) = $zeile =~ /phy\s(\w+)/; my ($state) = $zeile =~ /state\s(\w+)/; my ($flags) = $zeile =~ /flags\s(\w+)/; printf "phy: $phy, state: $state, flags: $flags\n"; } elsif($zeile =~ m/RESYNC_IN_PROGRESS/g){ my ($phy) = $zeile =~ / \b phy \s+ (\w+) /x; my ($state) = $zeile =~ / \b state \s+ (\w+) /x; my ($flags) = $zeile =~ / \b flags \s+ (\w+) /x; printf "state: $state, flags: $flags\n"; } elsif($zeile =~ m/MISSING/g){ my ($phy) = $zeile =~ / \b phy \s+ (\w+) /x; my ($state) = $zeile =~ / \b state \s+ (\w+) /x; my ($flags) = $zeile =~ / \b flags \s+ (\w+) /x; printf "phy: $phy, state: $state, flags: $flags\n"; } elsif($zeile =~ m/OUT_OF_SYNC/g){ my ($phy) = $zeile =~ / \b phy \s+ (\w+) /x; my ($state) = $zeile =~ / \b state \s+ (\w+) /x; my ($flags) = $zeile =~ / \b flags \s+ (\w+) /x; printf "phy: $phy, state: $state, flags: $flags\n"; } elsif($zeile =~ m/OFFLINE/g){ my ($phy) = $zeile =~ / \b phy \s+ (\w+) /x; my ($state) = $zeile =~ / \b state \s+ (\w+) /x; my ($flags) = $zeile =~ / \b flags \s+ (\w+) /x; printf "phy: $phy, state: $state, flags: $flags\n"; } else { printf "UNKNOWN"; } } close(DATEN);