diff --git a/pve-reporting/get_vminfo_clu1.pl b/pve-reporting/get_vminfo_clu1.pl
index 3704c74..b1c2ae4 100644
--- a/pve-reporting/get_vminfo_clu1.pl
+++ b/pve-reporting/get_vminfo_clu1.pl
@@ -2,8 +2,8 @@
#use Data::Dumper;
if ($ARGV[0] eq "") {
- printf "no mail address given to send report to. exit\n";
- exit 1;
+ printf "no mail address given to send report to. exit\n";
+ exit 1;
}
@servers = qw/conpve29 conpve28 conpve20 conpve17/;
@@ -14,37 +14,40 @@ for $server (@servers) {
@serverinfo = `ssh -q -l root $server qm list | sed "s/\$/$server/" | grep -v VMID 2> /dev/null`;
foreach (@serverinfo) {
($vmid,
- $vms{$1}{'name'},
- $vms{$1}{'status'},
- $vms{$1}{'memory'},
- $vms{$1}{'bootdisk'},
- $vms{$1}{'pid'},
- $vms{$1}{'host'}
- ) = $_ =~ / *([0-9]{3,4}) *([^ ]*) *([a-z]*) *([0-9]*) *([0-9.]*) *([0-9]*) *($server)/gm;
+ $vms{$1}{'name'},
+ $vms{$1}{'status'},
+ $vms{$1}{'memory'},
+ $vms{$1}{'bootdisk'},
+ $vms{$1}{'pid'},
+ $vms{$1}{'host'}
+ ) = $_ =~ / *([0-9]{3,4}) *([^ ]*) *([a-z]*) *([0-9]*) *([0-9.]*) *([0-9]*) *($server)/gm;
}
$vmlist="";
foreach $vmid (keys %vms) {
$vmlist = $vmlist . "$vmid " if ($vms{$vmid}{'host'} eq $server);
}
- chomp $vmlist;
+ chomp $vmlist;
print "---- get more details from vms $vmlist\n";
@more = `ssh -q -l root $server bash /opt/pve-reporting/get_vmid_info.sh $vmlist 2> /dev/null`;
foreach (@more) {
chomp;
( $vmid,
- $vms{$1}{'os'},
- $vms{$1}{'disksizes'},
- $vms{$1}{'diskusages'},
- $vms{$1}{'sockets'},
- $vms{$1}{'cores'},
- $vms{$1}{'description'},
- $vms{$1}{'tags'},
- $vms{$1}{'cdrom'}
- ) = $_ =~ /([^|]*).([^|]*).([^|]*).([^|]*).([^|]*).([^|]*).([^|]*).([^|]*).([^|]*)$/gm;
- print "----- ID $vmid\n";
+ $vms{$1}{'os'},
+ $vms{$1}{'disksizes'},
+ $vms{$1}{'diskusages'},
+ $vms{$1}{'sockets'},
+ $vms{$1}{'cores'},
+ $vms{$1}{'description'},
+ $vms{$1}{'tags'},
+ $vms{$1}{'cdrom'}
+ ) = $_ =~ /([^|]*).([^|]*).([^|]*).([^|]*).([^|]*).([^|]*).([^|]*).([^|]*).([^|]*)$/gm;
+ @tags=split ";", $vms{$1}{'tags'};
+ print "tags $vms{$1}{'tags'}\n";
+ foreach (@tags) { print "tag $_\n"; $tag{$_}{'name'}=$_; }
+ print "----- ID $vmid\n";
}
- print "\n";
+ print "\n";
}
open HTML, ">output1.html";
@@ -75,73 +78,103 @@ printf HTML '
';
printf HTML "
\n\n";
-open OUTPUT, ">output1.txt";
-open EUREGON, ">output_euregon.txt";
-print "-- print vm information to console and in file output1.txt\n";
-$str = sprintf "VMID|NAME|OS|DISKSIZE(S)|DISKUSAGE(S)|SOCKETS|CORES|MEMORY(MB)|BOOTDISK(GB)|DESCRIPTION|TAGS|STATUS|HOST|PID|CDROM\n";
-printf $str;
-printf OUTPUT $str;
-printf EUREGON $str;
+open OUTPUT, ">output1.csv";
+print "-- print vm information to console and in file output1.csv\n";
+$hstr = sprintf "VMID|NAME|OS|DISKSIZE(S)|DISKUSAGE(S)|SOCKETS|CORES|MEMORY(MB)|BOOTDISK(GB)|DESCRIPTION|TAGS|STATUS|HOST|PID|CDROM\n";
+printf $hstr;
+printf OUTPUT $hstr;
$str = sprintf "\n| VMID | NAME | OS | DISKSIZE(S) | DISKUSAGE(S) | SOCKETS | CORES | MEMORY(MB) | BOOTDISK(GB) | DESCRIPTION | TAGS | STATUS | HOST | PID | CDROM |
\n";
printf HTML $str;
+
foreach $vm (sort keys %vms) {
$str = sprintf ("%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s\n",
- $vm,
- $vms{$vm}{'name'},
- $vms{$vm}{'os'},
- $vms{$vm}{'disksizes'},
- $vms{$vm}{'diskusages'},
- $vms{$vm}{'sockets'},
- $vms{$vm}{'cores'},
- $vms{$vm}{'memory'},
- $vms{$vm}{'bootdisk'},
- $vms{$vm}{'description'},
- $vms{$vm}{'tags'},
- $vms{$vm}{'status'},
- $vms{$vm}{'host'},
- $vms{$vm}{'pid'},
- $vms{$vm}{'cdrom'}
- );
+ $vm,
+ $vms{$vm}{'name'},
+ $vms{$vm}{'os'},
+ $vms{$vm}{'disksizes'},
+ $vms{$vm}{'diskusages'},
+ $vms{$vm}{'sockets'},
+ $vms{$vm}{'cores'},
+ $vms{$vm}{'memory'},
+ $vms{$vm}{'bootdisk'},
+ $vms{$vm}{'description'},
+ $vms{$vm}{'tags'},
+ $vms{$vm}{'status'},
+ $vms{$vm}{'host'},
+ $vms{$vm}{'pid'},
+ $vms{$vm}{'cdrom'}
+ );
printf $str;
- # if tag = euregon : extra datei
- printf EUREGON $str if ($vms{$vm}{'tags'} =~ /euregon/i);
+ # if tag = euregon : extra datei
+ #printf EUREGON $str if ($vms{$vm}{'tags'} =~ /euregon/i);
- # if disksize < 1072623616 : ignorieren
-
- # ausgabe
+ # ausgabe
printf OUTPUT $str;
- $vms{$vm}{'disksizes'} =~ s/,/
/g;
- $vms{$vm}{'diskusages'} =~ s/,/
/g;
- $vms{$vm}{'tags'} =~ s/;/
/g;
+ $alltags = $vms{$vm}{'tags'};
+ $alltags =~ s/;/
/g;
+ $allsizes = $vms{$vm}{'disksizes'};
+ $allsizes =~ s/;/
/g;
+ $allusages = $vms{$vm}{'diskusages'};
+ $allusages =~ s/;/
/g;
+
$str = sprintf ("| %s | %s | %s | %s | %s | %s | %s | %s | %s | %s | %s | %s | %s | %s | %s |
\n",
- $vm,
- $vms{$vm}{'name'},
- $vms{$vm}{'os'},
- $vms{$vm}{'disksizes'},
- $vms{$vm}{'diskusages'},
- $vms{$vm}{'sockets'},
- $vms{$vm}{'cores'},
- $vms{$vm}{'memory'},
- $vms{$vm}{'bootdisk'},
- $vms{$vm}{'description'},
- $vms{$vm}{'tags'},
- $vms{$vm}{'status'},
- $vms{$vm}{'host'},
- $vms{$vm}{'pid'},
- $vms{$vm}{'cdrom'}
- );
+ $vm,
+ $vms{$vm}{'name'},
+ $vms{$vm}{'os'},
+ $allsizes,
+ $allusages,
+ $vms{$vm}{'diskusages'},
+ $vms{$vm}{'sockets'},
+ $vms{$vm}{'cores'},
+ $vms{$vm}{'memory'},
+ $vms{$vm}{'bootdisk'},
+ $vms{$vm}{'description'},
+ $alltags,
+ $vms{$vm}{'status'},
+ $vms{$vm}{'host'},
+ $vms{$vm}{'pid'},
+ $vms{$vm}{'cdrom'}
+ );
printf HTML $str;
}
close OUTPUT;
-close EUREGON;
printf HTML "\n
\n";
close HTML;
-
-print "-- send output1.txt as attachement via email\n";
+# schreibe einzelne tagfiles
+foreach $t (keys %tag) {
+ print "t $t\n";
+ open OUT, ">output1_$t.csv";
+ printf OUT $hstr;
+ foreach $vm (sort keys %vms) {
+ print "1 $vms{$vm}{'tags'} 2 $tag{$t}{'name'}\n";
+ if ( $vms{$vm}{'tags'} =~ /$t/ ) {
+ $str = sprintf ("%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s\n",
+ $vm,
+ $vms{$vm}{'name'},
+ $vms{$vm}{'os'},
+ $vms{$vm}{'disksizes'},
+ $vms{$vm}{'diskusages'},
+ $vms{$vm}{'sockets'},
+ $vms{$vm}{'cores'},
+ $vms{$vm}{'memory'},
+ $vms{$vm}{'bootdisk'},
+ $vms{$vm}{'description'},
+ $vms{$vm}{'tags'},
+ $vms{$vm}{'status'},
+ $vms{$vm}{'host'},
+ $vms{$vm}{'pid'},
+ $vms{$vm}{'cdrom'}
+ );
+ print OUT $str;
+ }
+ }
+ close OUT;
+}
+print "-- send output1.csv as attachement via email\n";
# mail
open MAIL, ">mail1.tmp";
@@ -150,15 +183,5 @@ printf MAIL "FROM: CONET Services Monitoring Reporter mail1.tmp";
-printf MAIL "TO: $ARGV[0]\n";
-printf MAIL "FROM: CONET Services Monitoring Reporter /dev/null`;
foreach (@serverinfo) {
($vmid,
- $vms{$1}{'name'},
- $vms{$1}{'status'},
- $vms{$1}{'memory'},
- $vms{$1}{'bootdisk'},
- $vms{$1}{'pid'},
- $vms{$1}{'host'}
- ) = $_ =~ / *([0-9]{3,4}) *([^ ]*) *([a-z]*) *([0-9]*) *([0-9.]*) *([0-9]*) *($server)/gm;
+ $vms{$1}{'name'},
+ $vms{$1}{'status'},
+ $vms{$1}{'memory'},
+ $vms{$1}{'bootdisk'},
+ $vms{$1}{'pid'},
+ $vms{$1}{'host'}
+ ) = $_ =~ / *([0-9]{3,4}) *([^ ]*) *([a-z]*) *([0-9]*) *([0-9.]*) *([0-9]*) *($server)/gm;
}
$vmlist="";
foreach $vmid (keys %vms) {
$vmlist = $vmlist . "$vmid " if ($vms{$vmid}{'host'} eq $server);
}
- chomp $vmlist;
+ chomp $vmlist;
print "---- get more details from vms $vmlist\n";
@more = `ssh -q -l root $server bash /opt/pve-reporting/get_vmid_info.sh $vmlist 2> /dev/null`;
foreach (@more) {
chomp;
( $vmid,
- $vms{$1}{'os'},
- $vms{$1}{'disksizes'},
- $vms{$1}{'diskusages'},
- $vms{$1}{'sockets'},
- $vms{$1}{'cores'},
- $vms{$1}{'description'},
- $vms{$1}{'tags'},
- $vms{$1}{'cdrom'}
- ) = $_ =~ /([^|]*).([^|]*).([^|]*).([^|]*).([^|]*).([^|]*).([^|]*).([^|]*).([^|]*)$/gm;
- print "----- ID $vmid\n";
+ $vms{$1}{'os'},
+ $vms{$1}{'disksizes'},
+ $vms{$1}{'diskusages'},
+ $vms{$1}{'sockets'},
+ $vms{$1}{'cores'},
+ $vms{$1}{'description'},
+ $vms{$1}{'tags'},
+ $vms{$1}{'cdrom'}
+ ) = $_ =~ /([^|]*).([^|]*).([^|]*).([^|]*).([^|]*).([^|]*).([^|]*).([^|]*).([^|]*)$/gm;
+ print "----- ID $vmid\n";
}
- print "\n";
+ print "\n";
}
open HTML, ">output2.html";
@@ -75,8 +75,8 @@ printf HTML '
';
printf HTML "\n\n";
-open OUTPUT, ">output2.txt";
-print "-- print vm information to console and in file output2.txt\n";
+open OUTPUT, ">output2.csv";
+print "-- print vm information to console and in file output2.csv\n";
$str = sprintf "VMID|NAME|OS|DISKSIZE(S)|DISKUSAGE(S)|SOCKETS|CORES|MEMORY(MB)|BOOTDISK(GB)|DESCRIPTION|TAGS|STATUS|HOST|PID|CDROM\n";
printf $str;
printf OUTPUT $str;
@@ -85,45 +85,45 @@ $str = sprintf "/g;
- $vms{$vm}{'diskusages'} =~ s/,/
/g;
- $vms{$vm}{'tags'} =~ s/;/
/g;
+ $vms{$vm}{'disksizes'} =~ s/,/
/g;
+ $vms{$vm}{'diskusages'} =~ s/,/
/g;
+ $vms{$vm}{'tags'} =~ s/;/
/g;
$str = sprintf ("| %s | %s | %s | %s | %s | %s | %s | %s | %s | %s | %s | %s | %s | %s | %s |
\n",
- $vm,
- $vms{$vm}{'name'},
- $vms{$vm}{'os'},
- $vms{$vm}{'disksizes'},
- $vms{$vm}{'diskusages'},
- $vms{$vm}{'sockets'},
- $vms{$vm}{'cores'},
- $vms{$vm}{'memory'},
- $vms{$vm}{'bootdisk'},
- $vms{$vm}{'description'},
- $vms{$vm}{'tags'},
- $vms{$vm}{'status'},
- $vms{$vm}{'host'},
- $vms{$vm}{'pid'},
- $vms{$vm}{'cdrom'}
- );
+ $vm,
+ $vms{$vm}{'name'},
+ $vms{$vm}{'os'},
+ $vms{$vm}{'disksizes'},
+ $vms{$vm}{'diskusages'},
+ $vms{$vm}{'sockets'},
+ $vms{$vm}{'cores'},
+ $vms{$vm}{'memory'},
+ $vms{$vm}{'bootdisk'},
+ $vms{$vm}{'description'},
+ $vms{$vm}{'tags'},
+ $vms{$vm}{'status'},
+ $vms{$vm}{'host'},
+ $vms{$vm}{'pid'},
+ $vms{$vm}{'cdrom'}
+ );
printf HTML $str;
}
close OUTPUT;
@@ -131,7 +131,7 @@ printf HTML "\n
\n";
close HTML;
-print "-- send output2.txt as attachement via email\n";
+print "-- send output2.csv as attachement via email\n";
open MAIL, ">mail2.tmp";
printf MAIL "TO: $ARGV[0]\n";
@@ -139,5 +139,6 @@ printf MAIL "FROM: CONET Services Monitoring Reporter