l0n
Enthusiast
Thread Starter
- Mitglied seit
- 13.03.2005
- Beiträge
- 994
- Desktop System
- Ryzen
- Laptop
- Asus Zenbook Flip @ Arch Linux
- Prozessor
- AMD Ryzen 5 5600X
- Mainboard
- Asus Prime B550
- Kühler
- Alpenföhn
- Speicher
- G.Skill DDR4 3000Mhz
- Grafikprozessor
- Asus ROG STRIX RX6700XT
- Display
- PHL 275E1
- SSD
- Samsung 850EVO 500GB + WD Blue NVMe 1TB
- Gehäuse
- Cooltek Antiphon
- Netzteil
- Corsair CX550M
- Keyboard
- Speedlink Izeris
- Mouse
- Logitech MX518 Anni. Edition
- Betriebssystem
- Arch Linux
- Webbrowser
- Firefox
- Internet
- ▼250 ▲25
Moin Leute,
ich hab ein kleines Problem mit einem Perl Script. Das Script soll aus einer Datei einen Wert auslesen und diesen mit einem Definiertem Limit vergleichen. Es soll eine Warnung kommen wenn 90 % der Limits erreicht sind, dann eine Warnung wenn das Limit überschritten worden ist und solange keine der beiden Bedienungen erfüllt ist soll das Script den Wert einfach nur ausgeben.
Zusätzlich soll eine Warnung ausgegeben werden wenn die Datei mit dem zu kontrollierenden Wert nicht gefunden werden kann.
GetOpts sind -l für das Limit und -f für die Pfadangabe zur Datei.
Eigentlich ein simples Script aber Perl schiesst es jedesmal ab mit dem Fehler "Out of Memory!"
Hier mal der Code:
Die paar Zeilen werden wohl keine 4 GB Ram auslasten oder? Oder sieht da wer grobe Fehler die das ganze ineffizient machen?
Danke schonmal
ich hab ein kleines Problem mit einem Perl Script. Das Script soll aus einer Datei einen Wert auslesen und diesen mit einem Definiertem Limit vergleichen. Es soll eine Warnung kommen wenn 90 % der Limits erreicht sind, dann eine Warnung wenn das Limit überschritten worden ist und solange keine der beiden Bedienungen erfüllt ist soll das Script den Wert einfach nur ausgeben.
Zusätzlich soll eine Warnung ausgegeben werden wenn die Datei mit dem zu kontrollierenden Wert nicht gefunden werden kann.
GetOpts sind -l für das Limit und -f für die Pfadangabe zur Datei.
Eigentlich ein simples Script aber Perl schiesst es jedesmal ab mit dem Fehler "Out of Memory!"
Hier mal der Code:
Code:
#!/usr/local/bin/perl
#This Script checks some Logfiles for Threshold of defined Values
#
#
#
use strict;
sub init();
{
use GetOpt::Std;
my @ARGV;
my $file = $ARGV[0]; #File wird als Parameter übergeben
my $opts_l = $ARGV[1]; #Schwellenwert wird als Parameter übergeben
GetOptions ("l:" => $opts_l, "f:" => $file);
}
my $file;
my %ERRORS;
my $print;
if (-e $file) #Prüfung ob Datei vorhanden
{
open(IN, $file);
$file = <IN>;
}
else
{
$print = "2: Datei $file nicht vorhanden
exit $ERRORS{'CRITICAL'}";
#Wenn Datei nicht gefunden Kritisch
};
if ($opts_l == undef)
{ #Wenn kein Schwellenwert gesetzt ist
#wird automatisch ein Wert gesetzt
$opts_l == 1000; #Voreingestellter Schwellenwert
}
else
{
};
if ($file == $opts_l) #Wenn Wert größer Limit Warnung
{
$print = "$opts_l: LIMIT $opts_l wurde überschritten
exit $ERRORS{"CRITICAL"}";
}
else
{
if ($file < $opts_l) #Wenn Wert kleiner als Limit OK
{
$print = "$opts_l: Anzahl Mails ausgehend letzte Std: $opts_l" #Ausgabe wenn kein Fehler vorliegt
"exit $ERRORS{"OK"}";
}
else
{
if ($file > ($opts_l / 100 * 90)) #Wenn Wert 90% Limit Erreicht Warnung
{
$print = "$opts_l: 90 % vom LIMIT $opts_l wurden erreicht
exit $ERRORS{"WARNING"}";
}
else
{
$print = "$opts_l: Anzahl Mails ausgehend letzte Std: $opts_l" #Ausgabe wenn kein Fehler vorliegt
"exit $ERRORS{"OK"}";
#Wert wird in Ausgabe geschrieben
};
};
};
print $print; #Ausgabe
close(IN); #File schliessen
Die paar Zeilen werden wohl keine 4 GB Ram auslasten oder? Oder sieht da wer grobe Fehler die das ganze ineffizient machen?
Danke schonmal