#!/usr/bin/perl -w # Dieses Skript analysiert die Belegung der Festplatten # und gibt Warnungen aus, sofern das Wurzelverzeichnis zu mehr als 50 und 80% belegt ist # bei 90% Belegung wird eine Warnung ausgegeben und die Platte von Datenmuell gesäubert # # # use Mail::Sender; #use SMS::SMS77; #use Net::SMS::Massenversand; use strict; my @zeilen = `df -h`; my $zeilenanzahl = @zeilen; my $zeilennummer = 0; my $wurzelverzeichnis = $zeilen[$zeilennummer]; my $absender; my $DEBUG; while($zeilennummer < $zeilenanzahl) { my @spalten = split(' ',$zeilen[$zeilennummer]); # die aktuelle Zeile wird aufgespalten in die einzelnen Spalten Muster ' ' steht für # ein Leerzeichen mittels dessen der Inhalt der Spalten getrennt ist my $letzte_spalte = $spalten[@spalten-1]; # mit [@spalten-1] wird das letzte Element des Arrays qspalten ermittelt if($letzte_spalte eq "/") { # sofern die letzte Spalte das / enthält ist es das Wurzelverzeichnis $wurzelverzeichnis = $zeilen[$zeilennummer]; } $zeilennummer = $zeilennummer+1; } chomp($wurzelverzeichnis); my @spalten = split(' ',$wurzelverzeichnis); my @use = split('%',$spalten[4]); print "marker1 Belegung des Wurzelverzeichnisses betraegt aktuell @use\n"; if ($use[0] > 50) { &SENDEMAIL; print "marker2 Verschicke eine Mail, daß Wurzelverzeichnis zu mehr als 50% belegt ist.\n"; print "##### ACHTUNG das Wurzelverzeichnis ist zu mehr als 50% belegt! ####\n"; } if ($use[0] > 80) { &SENDEMAIL; print "marker3 Verschicke eine Mail, dass Wurzelverzeicnis zu mehr als 80% belegt ist.\n"; &SENDESMS; print "#### VORSICHT das Wurzelverzeicnis ist zu mehr als 80 % belegt ####\n"; } if ($use[0] > 90) { &SENDEMAIL; &SENDESMS; print "##### WARNUNG DAS WUZELVERZEICNIS HAT DIE KRITISCHE MARKE VON MEHR ALS 90% ÜBERSCHRITTEN!!! ####\n"; system("apt-get autoclean"); system("apt-get autoremove"); system("apt-get clean"); system("apt-get install localepurge"); }