conetadm/pve-reporting/get_vminfo.pl hinzugefügt
This commit is contained in:
88
conetadm/pve-reporting/get_vminfo.pl
Normal file
88
conetadm/pve-reporting/get_vminfo.pl
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
#!/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/conpve28 conpve29 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;
|
||||||
|
}
|
||||||
|
$vmlist="";
|
||||||
|
foreach $vmid (keys %vms) {
|
||||||
|
$vmlist = $vmlist . "$vmid " if ($vms{$vmid}{'host'} eq $server);
|
||||||
|
}
|
||||||
|
|
||||||
|
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}{'usages'},
|
||||||
|
$vms{$1}{'sockets'},
|
||||||
|
$vms{$1}{'cores'},
|
||||||
|
$vms{$1}{'description'},
|
||||||
|
$vms{$1}{'tags'},
|
||||||
|
$vms{$1}{'cdrom'}
|
||||||
|
) = $_ =~ /([^|]*).([^|]*).([^|]*).([^|]*).([^|]*).([^|]*).([^|]*).([^|]*).([^|]*)$/gm;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#print Dumper(%vms);
|
||||||
|
|
||||||
|
open OUTPUT, ">output.txt";
|
||||||
|
print "-- print vm information to console and in file output.txt\n";
|
||||||
|
$str = sprintf "VMID|NAME|OS|DISKSIZE(S)|DISKUSAG(S)|SOCKETS|CORES|MEMORY(MB)|BOOTDISK(GB)|DESCRIPTION|TAGS|STATUS|HOST|PID|CDROM\n";
|
||||||
|
printf $str;
|
||||||
|
printf OUTPUT $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'}
|
||||||
|
);
|
||||||
|
printf $str;
|
||||||
|
printf OUTPUT $str;
|
||||||
|
}
|
||||||
|
close OUTPUT;
|
||||||
|
|
||||||
|
|
||||||
|
print "-- send output.txt as attachement via email\n";
|
||||||
|
|
||||||
|
open MAIL, ">mail.tmp";
|
||||||
|
printf MAIL "TO: $ARGV[0]\n";
|
||||||
|
printf MAIL "FROM: CONET Services Monitoing Reporter <help\@conet.de\n";
|
||||||
|
printf MAIL "SUBJECT: Proxmox VE Report\n";
|
||||||
|
printf MAIL "X-CONET-SRC: conetadm\@conlxsyslog03:/scripts/conetadm/pve-reporting/get_vminfo.pl\n";
|
||||||
|
printf MAIL "\n\n";
|
||||||
|
`echo "" | mutt -H mail.tmp -a output.txt -- $ARGV[0]`;
|
||||||
|
unlink "mail.tmp";
|
||||||
|
|
||||||
Reference in New Issue
Block a user