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.- 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?
Nein, die musst du auch regelmäßig laufen lassen wenn der an ist.- Läuft die Garbage Collection (die so wie ich es verstanden habe auch die Deduplizierung beinhaltet ??) trotzdem der PBS die meisste Zeit runtergefahren ist?
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
Wie müsste ich den Code anpassen das er selbständig all 5 Minuten durchläuftCode:#!/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
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.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
#!/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