Mit den Script kann während, vor oder nach einem Backup bestimmte Aktionen durchgeführt werden. Uptime Kuma soll nach einem Backup benachrichtigt werden.
Konfigurationsdatei von Proxmox editieren und dort die ausführen des Scripts hinterlegen.
nano /etc/pve/jobs.cfg
...
script /root/uptime-nachricht.pl
...
Das Script wird nach dem Backup-Job ausgeführt und nicht nach jedem Backup. Das Script kann aber auch dafür verwendet werden.
Das Script muss ausführbar sein.
chmod +x /root/uptime-nachricht.pl
#!/usr/bin/perl -w
# Example hook script for vzdump (--script option)
# This can also be added as a line in /etc/vzdump.conf
# e.g. 'script: /usr/local/bin/vzdump-hook-script.pl'
use strict;
print "HOOK: " . join (' ', @ARGV) . "\n";
my $phase = shift;
if ($phase eq 'job-init' ||
$phase eq 'job-start' ||
$phase eq 'job-end' ||
$phase eq 'job-abort') {
# undef for Proxmox Backup Server storages
# undef in phase 'job-init' except when --dumpdir is used directly
my $dumpdir = $ENV{DUMPDIR};
# undef when --dumpdir is used directly
my $storeid = $ENV{STOREID};
print "HOOK-ENV: ";
print "dumpdir=$dumpdir;" if defined($dumpdir);
print "storeid=$storeid;" if defined($storeid);
print "\n";
# example: wake up remote storage node and enable storage
if ($phase eq 'job-init') {
#system("wakeonlan AA:BB:CC:DD:EE:FF");
#sleep(30);
#system ("/sbin/pvesm set $storeid --disable 0") == 0 ||
# die "enabling storage $storeid failed";
}
if ($phase eq 'job-end') {
system ("curl https://uptime.webseite.de/api/push/pDRnkIKjI4?status=up&msg=OK&ping=")
}
# example: copy resulting log file to another host using scp
if ($phase eq 'log-end') {
#system ("scp $logfile backup-host:/backup-dir") == 0 ||
# die "copy log file to backup-host failed";
}
# do what you want
} elsif ($phase eq 'backup-start' ||
$phase eq 'backup-end' ||
$phase eq 'backup-abort' ||
$phase eq 'log-end' ||
$phase eq 'pre-stop' ||
$phase eq 'pre-restart' ||
$phase eq 'post-restart') {
my $mode = shift; # stop/suspend/snapshot
my $vmid = shift;
my $vmtype = $ENV{VMTYPE}; # lxc/qemu
# undef for Proxmox Backup Server storages
my $dumpdir = $ENV{DUMPDIR};
# undef when --dumpdir is used directly
my $storeid = $ENV{STOREID};
my $hostname = $ENV{HOSTNAME};
# target is only available in phase 'backup-end'
my $target = $ENV{TARGET};
# logfile is only available in phase 'log-end'
# undef for Proxmox Backup Server storages
my $logfile = $ENV{LOGFILE};
print "HOOK-ENV: ";
for my $var (qw(vmtype dumpdir storeid hostname target logfile)) {
print "$var=$ENV{uc($var)};" if defined($ENV{uc($var)});
}
print "\n";
# example: copy resulting backup file to another host using scp
if ($phase eq 'backup-end') {
# system ("curl https://uptime.webseite.de/api/push/pDRnkIKjI4?status=up&msg=OK&ping=")
}
} else {
die "got unknown phase '$phase'";
}
exit (0);