[pve-devel] [PATCH pve-manager 0/1] feat: pass backup status to hook script on job-end/job-abort

Thomas Lamprecht t.lamprecht at proxmox.com
Wed Sep 24 11:40:30 CEST 2025


Am 23.09.25 um 19:40 schrieb Constantin Herold:
> I've been using the pve manager vzdump hook to do custom things after a backup is done e.g. backup some more files, call a webhook for monitoring, etc.
> 
> However there is currently a big drawback, the job state does not get passed, so there is no way to tell whether the backup was succesfull or not.
> 
> I recently had some drive issues which resulted in 1 vm backup failing, if i had not checked the mailnotification i would have never catched that.
> 
> 
> e.g. /etc/vzdump.conf with `script: /root/backuphook.sh`
> 
> cat << 'EOF' > /root/backuphook
> #!/bin/bash
> 
> cd /tmp
> DATE=$(date +"%d.%m.%Y")
> FILENAME="backup_$DATE.env"
> echo "" >> "$FILENAME"
> chmod 700 "$FILENAME"
> echo "Arguments: $@" >> "$FILENAME"
> printenv >> "$FILENAME"
> echo -e "\n\n" >> "$FILENAME"
> EOF
> 
> 
> all the backuphook gets passed is the following:
> ```
> Arguments: job-end  
> PWD=/tmp
> LVM_SUPPRESS_FD_WARNINGS=1
> SHLVL=1
> STOREID=backup
> LC_ALL=C
> OLDPWD=/
> _=/usr/bin/printenv
> ```
> 
> No way to tell whether the backup was succesfull, can't even grep the backup log for it etc.
> 
> I've been using this simple patch to pass the errcount to the `job-end` and `job-abort` stage
> 
> This way you can check now if it was succesfull or not, e.g:
> 
> cat << 'EOF' > /root/backuphook
> #!/bin/bash
> 
> if [[ "$*" != *job-end* ]]; then
>     exit 0
> fi
> 
> if [ "$ERRCOUNT" -gt 0 ]; then
>     # alert on broken backup (could be drive issues etc.)
>     # call webhook / trigger monitoring alert

FWIW, for this the notification system might be better suited, it already
has support for various targets, including web hooks. That doesn't mean
adding info to the hook is not needed, just wanted to mention that it exist
and that one option might be to provide support for trigger a dedicated
notification for each single backup "sub-job", which would avoid the need
for having a custom hook if it's just to get a dedicated notification / hook
ASAP for each failed backup of a guest (vs. the overall result of the backups
of all guests).


> else
>     # do some more things after succesfull backup
> fi
> EOF
> 
> 
> Would be great if this could be merged.
> 
> Best regards
> Constantin
> 
> 
> Constantin Herold (1):
>   feat: pass backup status to hook script on job-end/job-abort
> 
>  PVE/VZDump.pm | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 





More information about the pve-devel mailing list