From 474e5895a7c991fcf3f00bedeecad82172518aad Mon Sep 17 00:00:00 2001 From: ageissler Date: Mon, 3 Mar 2025 08:23:58 +0100 Subject: [PATCH] =?UTF-8?q?pve-changes/get=5Fvminfo=5Fclu1.pl=20hinzugef?= =?UTF-8?q?=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pve-changes/get_vminfo_clu1.pl | 81 ++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 pve-changes/get_vminfo_clu1.pl diff --git a/pve-changes/get_vminfo_clu1.pl b/pve-changes/get_vminfo_clu1.pl new file mode 100644 index 0000000..867ac69 --- /dev/null +++ b/pve-changes/get_vminfo_clu1.pl @@ -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 ""; + +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 ""; +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/\]\[/\]
\[/g; + $str = sprintf ("", + $vm, + $vms{$vm}{'name'}, + $vms{$vm}{'changes'} + ); + printf HTML $str; +} +close OUTPUT; + +printf HTML "
VMIDNAMECHANGES
%s%s%s
"; +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