pve-changes/get_vminfo_clu1.pl hinzugefügt
This commit is contained in:
81
pve-changes/get_vminfo_clu1.pl
Normal file
81
pve-changes/get_vminfo_clu1.pl
Normal file
@@ -0,0 +1,81 @@
|
||||
#!/usr/bin/perl
|
||||
#use Data::Dumper;
|
||||
|
||||
if ($ARGV[0] eq "") {
|
||||
printf "no mail address given to send report to. exit\n";
|
||||
exit 1;
|
||||
}
|
||||
|
||||
@servers = qw/conpve29 conpve28 conpve20 conpve17/;
|
||||
#@servers = qw/conpve28 conpve20/;
|
||||
|
||||
print "-- get general info from every host\n";
|
||||
for $server (@servers) {
|
||||
print "--- server $server\n";
|
||||
@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;
|
||||
}
|
||||
print "---- get more details from vms $vmlist\n";
|
||||
foreach $vmid (keys %vms) {
|
||||
if ($vms{$vmid}{'host'} eq $server) {
|
||||
print "$vmid\n";
|
||||
$vms{$vmid}{'changes'} = `ssh -q -l root $server qm pending $vmid | grep new | sed "s/new/[new/g" | tr '\n' ']'`;
|
||||
}
|
||||
}
|
||||
|
||||
print "\n";
|
||||
}
|
||||
|
||||
#print Dumper(%vms);
|
||||
open HTML, ">output1.html";
|
||||
printf HTML "<html><head><!-- --></head><body><table border='1'>";
|
||||
|
||||
open OUTPUT, ">output1.txt";
|
||||
print "-- print vm information to console and in file output1.txt\n";
|
||||
$str = sprintf "VMID|NAME|CHANGES\n";
|
||||
printf $str;
|
||||
printf OUTPUT $str;
|
||||
|
||||
$str = sprintf "<tr><td>VMID</td><td>NAME</td><td>CHANGES</td></tr>";
|
||||
printf HTML $str;
|
||||
|
||||
foreach $vm (sort keys %vms) {
|
||||
$str = sprintf ("%s|%s|%s\n",
|
||||
$vm,
|
||||
$vms{$vm}{'name'},
|
||||
$vms{$vm}{'changes'}
|
||||
);
|
||||
printf $str;
|
||||
printf OUTPUT $str;
|
||||
|
||||
$vms{$vm}{'changes'} =~ s/\]\[/\]<br>\[/g;
|
||||
$str = sprintf ("<tr><td>%s</td><td>%s</td><td>%s</td></tr>",
|
||||
$vm,
|
||||
$vms{$vm}{'name'},
|
||||
$vms{$vm}{'changes'}
|
||||
);
|
||||
printf HTML $str;
|
||||
}
|
||||
close OUTPUT;
|
||||
|
||||
printf HTML "</table></body></html>";
|
||||
close HTML;
|
||||
|
||||
print "-- send output1.txt as attachement via email\n";
|
||||
|
||||
open MAIL, ">mail1.tmp";
|
||||
printf MAIL "TO: $ARGV[0]\n";
|
||||
printf MAIL "FROM: CONET Services Monitoring Reporter <help\@conet.de\n";
|
||||
printf MAIL "SUBJECT: Proxmox VE Report Cluster 1 Pending Changes\n";
|
||||
printf MAIL "X-CONET-SRC: conetadm\@conlxobs1:/scripts/conetadm/pve-changes/get_vminfo_clu1.pl\n";
|
||||
printf MAIL "\n\n";
|
||||
`echo "" | mutt -H mail1.tmp -a output1.txt -- $ARGV[0]`;
|
||||
unlink "mail1.tmp";
|
||||
Reference in New Issue
Block a user