Shutdown des PBS nachdem alle VMs gesichert wurden?

Danke für den Beitrag! Jetzt kann ich endlich mein qnap ausschalten (wenn es nicht gebraucht wird) und dank dem command pvesm set $storeid --disable 1 die Timeouts und Lücken im Monitoring los werden :D ❤️
 
Hallo zusammen!
Vielen Dank erstmal für diesen tollen Thread. Mein PBS braucht zwar nur an die 25 Watt aber auch die kann man heutzutage gerne sparen. Script funktioniert auch. Ich habe das erweiterte Script von dremeier genutzt.
Jetzt habe ich hierzu noch ein zwei Fragen:
- Auf dem PBS läuft ja auch noch der Verify der Backups. Wenn der Server aus ist, findet das ja nicht statt. Gibt es eine Möglichkeit nach dem Backup noch den Verify zu triggern und danach erst den PBS runter zu fahren?
- Läuft die Garbage Collection (die so wie ich es verstanden habe auch die Deduplizierung beinhaltet ??) trotzdem der PBS die meisste Zeit runtergefahren ist?
Danke für euren Support!
 
- Auf dem PBS läuft ja auch noch der Verify der Backups. Wenn der Server aus ist, findet das ja nicht statt. Gibt es eine Möglichkeit nach dem Backup noch den Verify zu triggern und danach erst den PBS runter zu fahren?
Ja, wird aber kompliziert. Müsstest du dann das Hook Script umschreiben, dass das über die PBS API den Vierfy/GC Task anwirft und dann so lange wartet, bis die beiden abgeschlossen sind (was Stunden oder Tage dauern kann). Da müsste man dann also noch per PBS API die Tasks überwachen.
Und falls man ZFS nutzt sollte man den auch nicht einfach runterfahren, falls da noch ein Scrub läuft. Auf Scrubs kann man leider nicht per API zugreifen. Da müsste man dann noch mit SSH arbeiten.

- Läuft die Garbage Collection (die so wie ich es verstanden habe auch die Deduplizierung beinhaltet ??) trotzdem der PBS die meisste Zeit runtergefahren ist?
Nein, die musst du auch regelmäßig laufen lassen wenn der an ist.

Wäre vermutlich am einfachsten, wenn du per cron den PBS einmal die Woche zu einer festen Zeit hochfähren und dann wieder nach 24h oder so zu einer festen Zeit runterfahren lassen würdest. Da kannst du GC + (Re-)Verify + Scrub auf genau die Zeit legen wo du weißt, dass da dein PBS an sein wird.
So mache ich das hier jedenfalls weil ich zu faul war so ein aufwändiges Hook Script zu schreiben. ;)
 
Last edited:
ich prüfe in dem Script per SSH auf laufende Jobs und warte gegebenenfalls mit dem Shutdown bis diese abgeschlossen sind. Sollte sowohl auf Verify als auch auf GC warten. Ist nicht super elegant und schön, für mich funktioniert es aber wunderbar.

Bash:
if [ "$1" == "job-end" ]; then
  sleep 10s
  jobs=5
  until [[ $jobs == 0 ]]
  do
    jobs=$(ssh $host "proxmox-backup-manager task list | grep running | wc -l");
    if [[ $jobs -ne 0 ]]; then
      sleep 60s
    fi
  done
 
  # hier kommt dein Shutdown-Prozedere rein
 
fi

die Variable "host" beinhaltet die IP-Adresse.
bzgl SSH müssen natürlich die Voraussetzungen passen, also je nachdem wie du dich verbindest, der Key oder PW vorhanden sein usw.
 
Last edited:
  • Like
Reactions: Dunuin
Code:
#!/bin/bash

count=$(proxmox-backup-manager task list | grep running | wc -l);

if [ $count -gt 0 ]; then
    echo "tasks running"
else
    echo "shutdown possible"
    poweroff
fi
Wie müsste ich den Code anpassen das er selbständig all 5 Minuten durchläuft
somit würde ein cron Eintrag reichen diesen um 21 Uhr zu starten! Wenn alle Backups durch fährt er runter
 
Wie müsste ich den Code anpassen das er selbständig all 5 Minuten durchläuft
somit würde ein cron Eintrag reichen diesen um 21 Uhr zu starten! Wenn alle Backups durch fährt er runter
Ich denke das müsste man schon etwas komplexer machen. Z.B jede Minute laufen lassen und erst rebooten, wenn für 5 Minuten keine Tasks gefunden wurden. Sonst hättest du ein Problem, wenn da der Check ungünstig in genau der Sekunde zwischen dem Ende von einem VM Backup und dem Start des nächsten VM Backups kommt, wo dann kurz keine Tasks laufen. Du fragst ja den PBS nach Tasks und nicht den PVE. Für den PVE ist das ein großer Backup Job Task der viele kleine einzelne Backup Tasks für jeden Gast anstößt. Der PBS weiß aber nicht von deinem großen Backup Job und sieht nur vielen einzelnen Backup Tasks.
Und dann nicht vergessen, dass da GC, Prune, Re-Verify und ggf. Sync Tasks und Scrubs auch regelmäßig getan werden wollen.
Und Scrubs/Resilvering/Trims sind z.B. nicht vom PBS überwacht und man sollte dann nicht den PBS runterfahren wenn die laufen. Also falls du ZFS benutzt müsstest du noch per SSH den Pool-Status überwachen lassen.
 
Last edited:
Ich lasse auf unserem PBS ein "aws-cli sync" des Datastores laufen, wenn die Backups durch sind, und darauf wartet das folgende Skript:

Bash:
#!/usr/bin/bash

RTRSLEEP=15
RTRCOUNT=12

RETRIES=0
while [ $RETRIES -lt $RTRCOUNT ]; do
    if grep -iq ":backup:" /var/log/proxmox-backup/tasks/active; then
        RETRIES=0
    else
        RETRIES=$((RETRIES+1))
    fi
    if [ $RETRIES -lt $RTRCOUNT ]; then
        # echo "... waiting for backup jobs to finish ..."
        sleep $RTRSLEEP
    fi
done

systemctl start aws_sync.service --no-block

Statt dem aws.sync könnte man auch herunterfahren.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!