miyagi-backup.sh aktualisiert
This commit is contained in:
+100
-30
@@ -300,6 +300,9 @@ run_pbs_log_clear() {
|
||||
fi
|
||||
}
|
||||
|
||||
vzdump_success=false
|
||||
pbs_enabled_by_script=false
|
||||
|
||||
run_pbs_backup() {
|
||||
if [[ "${BACKUPSERVER,,}" != "yes" ]]; then
|
||||
log "PBS Backup übersprungen: BACKUPSERVER='$BACKUPSERVER' (muss 'yes' sein)"
|
||||
@@ -309,69 +312,132 @@ run_pbs_backup() {
|
||||
get_sourcehostname
|
||||
log "Starte PBS Backup auf Host: $SOURCEHOST"
|
||||
|
||||
# PBS-Storage prüfen und ggf. aktivieren
|
||||
log "Prüfe, ob PBS-Storage '$BACKUPSTORE' auf $SOURCEHOST aktiviert ist..."
|
||||
if rssh root@"$SOURCEHOST" "pvesm status | grep -w '$BACKUPSTORE' | grep -q 'disabled'"; then
|
||||
log "PBS-Storage '$BACKUPSTORE' ist deaktiviert – aktiviere temporär und warte 10 Sekunden..."
|
||||
rssh root@"$SOURCEHOST" "pvesm set '$BACKUPSTORE' --disable 0 && sleep 10"
|
||||
pbs_enabled_by_script=true
|
||||
else
|
||||
log "PBS-Storage '$BACKUPSTORE' ist bereits aktiviert."
|
||||
# ------------------------------------------------------------
|
||||
# PBS-Storage prüfen und ggf. temporär aktivieren
|
||||
# ------------------------------------------------------------
|
||||
pbs_enabled_by_script=false
|
||||
|
||||
log "Prüfe, ob PBS-Storage '$BACKUPSTORE' auf $SOURCEHOST aktiviert ist..."
|
||||
|
||||
if rssh root@"$SOURCEHOST" \
|
||||
"pvesm status | grep -w '$BACKUPSTORE' | grep -q 'disabled'"; then
|
||||
|
||||
log "PBS-Storage '$BACKUPSTORE' ist deaktiviert – aktiviere temporär und warte 10 Sekunden..."
|
||||
|
||||
if rssh root@"$SOURCEHOST" \
|
||||
"pvesm set '$BACKUPSTORE' --disable 0 && sleep 10"; then
|
||||
|
||||
pbs_enabled_by_script=true
|
||||
log "PBS-Storage '$BACKUPSTORE' wurde erfolgreich aktiviert."
|
||||
else
|
||||
log "FEHLER: PBS-Storage '$BACKUPSTORE' konnte nicht aktiviert werden."
|
||||
vzdump_success=false
|
||||
return 1
|
||||
fi
|
||||
|
||||
# PBS Namespace setzen (optional)
|
||||
else
|
||||
log "PBS-Storage '$BACKUPSTORE' ist bereits aktiviert."
|
||||
fi
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# PBS Namespace setzen
|
||||
# ------------------------------------------------------------
|
||||
PBS_NS_ARG=()
|
||||
|
||||
if [[ -n "$PBS_NAMESPACE" && "${PBS_NAMESPACE,,}" != "none" ]]; then
|
||||
PBS_NS_ARG=(--pbs-namespace "$PBS_NAMESPACE")
|
||||
log "PBS Namespace aktiviert: $PBS_NAMESPACE"
|
||||
else
|
||||
PBS_NS_ARG=()
|
||||
log "PBS Namespace nicht gesetzt – Backup läuft im Standard-Datastore"
|
||||
fi
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Backup-Status zurücksetzen
|
||||
# ------------------------------------------------------------
|
||||
vzdump_success=false
|
||||
|
||||
# Versuch: vzdump mit Change Detection
|
||||
## Eintrag muss in /etc/vzdump.conf entries-max 100000000
|
||||
# ------------------------------------------------------------
|
||||
# vzdump mit Change Detection
|
||||
# ------------------------------------------------------------
|
||||
log "Starte vzdump mit Change Detection..."
|
||||
if rssh root@"$SOURCEHOST" vzdump --pbs-change-detection-mode metadata \
|
||||
|
||||
if rssh root@"$SOURCEHOST" \
|
||||
vzdump --pbs-change-detection-mode metadata \
|
||||
"${PBS_NS_ARG[@]}" \
|
||||
--node "$SOURCEHOSTNAME" --storage "$BACKUPSTORE" \
|
||||
--exclude "$BACKUPEXCLUDE" --mode snapshot --all 1 \
|
||||
--node "$SOURCEHOSTNAME" \
|
||||
--storage "$BACKUPSTORE" \
|
||||
--exclude "$BACKUPEXCLUDE" \
|
||||
--mode snapshot \
|
||||
--all 1 \
|
||||
--notes-template '{{guestname}}'; then
|
||||
|
||||
log "vzdump (Change Detection) erfolgreich."
|
||||
vzdump_success=true
|
||||
|
||||
else
|
||||
|
||||
log "vzdump (Change Detection) fehlgeschlagen – versuche Fallback ohne Change Detection..."
|
||||
|
||||
if rssh root@"$SOURCEHOST" vzdump \
|
||||
# ----------------------------------------------------------
|
||||
# Fallback ohne Change Detection
|
||||
# ----------------------------------------------------------
|
||||
if rssh root@"$SOURCEHOST" \
|
||||
vzdump \
|
||||
"${PBS_NS_ARG[@]}" \
|
||||
--node "$SOURCEHOSTNAME" --storage "$BACKUPSTORE" \
|
||||
--exclude "$BACKUPEXCLUDE" --mode snapshot --all 1 \
|
||||
--node "$SOURCEHOSTNAME" \
|
||||
--storage "$BACKUPSTORE" \
|
||||
--exclude "$BACKUPEXCLUDE" \
|
||||
--mode snapshot \
|
||||
--all 1 \
|
||||
--notes-template '{{guestname}}'; then
|
||||
|
||||
log "Fallback-vzdump erfolgreich."
|
||||
vzdump_success=true
|
||||
|
||||
else
|
||||
|
||||
log "FEHLER: vzdump fehlgeschlagen – auch im Fallback."
|
||||
vzdump_success=false
|
||||
|
||||
fi
|
||||
fi
|
||||
# ------------------------------------------------------------
|
||||
# PBS-Storage nach erfolgreichem Backup wieder deaktivieren
|
||||
#
|
||||
# WICHTIG:
|
||||
# Nur deaktivieren, wenn dieses Script den Storage
|
||||
# vorher selbst aktiviert hat.
|
||||
# ------------------------------------------------------------
|
||||
if [[ "$vzdump_success" == true && "$pbs_enabled_by_script" == true ]]; then
|
||||
|
||||
log "Deaktiviere temporär aktiviertes PBS-Storage '$BACKUPSTORE' auf $SOURCEHOST..."
|
||||
|
||||
if rssh root@"$SOURCEHOST" \
|
||||
"pvesm set '$BACKUPSTORE' --disable 1"; then
|
||||
|
||||
log "PBS-Storage '$BACKUPSTORE' wurde wieder deaktiviert."
|
||||
|
||||
else
|
||||
|
||||
log "WARNUNG: PBS-Storage '$BACKUPSTORE' konnte nicht wieder deaktiviert werden."
|
||||
|
||||
fi
|
||||
fi
|
||||
|
||||
# PBS-Storage ggf. wieder deaktivieren
|
||||
if [[ "$vzdump_success" == true && "$pbs_enabled_by_script" == true ]]; then
|
||||
log "Deaktiviere temporär aktiviertes PBS-Storage '$BACKUPSTORE' auf $SOURCEHOST..."
|
||||
rssh root@"$SOURCEHOST" "pvesm set '$BACKUPSTORE' --disable 1"
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Rückgabestatus
|
||||
# ------------------------------------------------------------
|
||||
if [[ "$vzdump_success" == true ]]; then
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# PBS-Storage ggf. wieder deaktivieren
|
||||
if [[ "$vzdump_success" == true && "$pbs_enabled_by_script" == true ]]; then
|
||||
log "Deaktiviere temporär aktiviertes PBS-Storage '$BACKUPSTORE' auf $SOURCEHOST..."
|
||||
rssh root@"$SOURCEHOST" "pvesm set '$BACKUPSTORE' --disable 1"
|
||||
fi
|
||||
|
||||
# ================================================================
|
||||
# Monitoring-Ausgabe
|
||||
# ================================================================
|
||||
|
||||
if [[ "$vzdump_success" == true ]]; then
|
||||
echo "0 DailyPBS - Daily Backup erfolgreich" > /tmp/cmk_tmp.out
|
||||
else
|
||||
@@ -383,14 +449,18 @@ run_pbs_backup() {
|
||||
cat /tmp/cmk_tmp.out
|
||||
} > /tmp/90000_checkpbs
|
||||
|
||||
rscp /tmp/90000_checkpbs root@"$SOURCEHOST":/var/lib/check_mk_agent/spool \
|
||||
rscp /tmp/90000_checkpbs \
|
||||
root@"$SOURCEHOST":/var/lib/check_mk_agent/spool \
|
||||
|| log "Fehler beim Übertragen des Monitoring-Outputs via SCP"
|
||||
|
||||
rm -f /tmp/cmk_tmp.out /tmp/90000_checkpbs
|
||||
|
||||
#write_pbs_status
|
||||
}
|
||||
|
||||
|
||||
run_maintenance() {
|
||||
|
||||
run_maintenance() {
|
||||
if [[ "${BACKUPSERVER,,}" != "yes" ]]; then
|
||||
log "PBS Backup wird übersprungen (BACKUPSERVER=$BACKUPSERVER)"
|
||||
|
||||
Reference in New Issue
Block a user