#!/usr/bin/perl use strict; use warnings; use CGI; use CGI::Carp qw(fatalsToBrowser); use Spreadsheet::WriteExcel; my $cgi = CGI->new(); my %FORM = $cgi->Vars(); print $cgi->header(); my $PFAD="/perf_Data/Server"; # zum testen $FORM{Serverliste}='dcbpc111'; $FORM{Monat}=10; $FORM{Tag}=24; $FORM{Perftyp}='CPU'; check_input(\%FORM); my $IN = "$PFAD/$FORM{Serverliste}/$FORM{Monat}/$FORM{Tag}/$FORM{Perftyp}/$FORM{Serverliste}.cpu"; # Eingabedatei my $OUT = "/perf_Data/tmp/$FORM{Serverliste}.cpu.xls"; # Ausgabe-(Excel)-Datei my $book = Spreadsheet::WriteExcel->new($OUT); my $sheet = $book->addworksheet(); my $format = $book->addformat(font => "Arial", size => 8); my $row=0; my @header = ("Run-Queue","Block-Queue","Wait-Queue", "User-CPU","System-CPU", "Ges-CPU", "Zeit",); # Titel in Excel setzen $sheet->write_row($row, 0,\@header , $format); open IN, "<",$IN or die "Can not open $IN: $!"; while() { chomp; $sheet->write_row(++$row, 0, [(split/\s+/,$_)[0..6]], $format); } close IN; $book->close(); sub check_input{ my ($hashref) = @_; if($hashref->{Monat} !~ /^[01][0-9]$/ or $hashref->{Tag} !~ /^[0-3][0-9]$/ or $hashref->{Serverliste} !~ /^dcb[^\s]+$/ or !grep{$_ eq $hashref->{Perftyp}}(qw(CPU platten1 memory))){ print $cgi->h2('Fehler bei den Eingaben'); exit; } }