From 517c6e7b31dbbdb330567b8b32872639dcc47e0d Mon Sep 17 00:00:00 2001 From: Ssyleric <47066760+Ssyleric@users.noreply.github.com> Date: Thu, 24 Apr 2025 18:29:33 +0200 Subject: [PATCH] Create backup_pve2pbs.sh --- backup_pve2pbs.sh | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 backup_pve2pbs.sh diff --git a/backup_pve2pbs.sh b/backup_pve2pbs.sh new file mode 100644 index 0000000..5600356 --- /dev/null +++ b/backup_pve2pbs.sh @@ -0,0 +1,41 @@ +#!/bin/bash + +# 🔐 Auth avec API Token +export PBS_REPOSITORY="backup@pbs!pveclient@192.168.1.100:marechal-pve" +export PBS_PASSWORD="XXXXXX-XXXXXX-XXXXXXXX-XXXXXXX" + +PXAR_NAME="root.pxar" +LOGFILE="/var/log/backup-pve2pbs-token.log" + +# 📲 Telegram +TELEGRAM_BOT_TOKEN="XXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" +TELEGRAM_CHAT_ID="-XXXXXXXXXX" +TG_URL="https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage" + +# 🕒 Début +START_TIME="$(date)" +echo -e "[$START_TIME]\n🔄 Starting backup of / to $PBS_REPOSITORY as $PXAR_NAME (ID: backup)" > "$LOGFILE" + +# 🚀 Backup (avec ID personnalisé) +proxmox-backup-client backup "$PXAR_NAME:/" --repository "$PBS_REPOSITORY" --backup-id backup >> "$LOGFILE" 2>&1 +STATUS=$? +END_TIME="$(date)" + +if [ "$STATUS" -eq 0 ]; then + echo -e "\n[$END_TIME]\n✅ Backup completed successfully." >> "$LOGFILE" +else + echo -e "\n[$END_TIME]\n❌ Backup failed with status $STATUS." >> "$LOGFILE" +fi + +# 📦 Retention dynamique +RETENTION=$(proxmox-backup-client snapshot list --repository "$PBS_REPOSITORY" --backup-id backup 2>/dev/null | grep 'keep-' | tail -n1 | tr -d ' ') +[ -n "$RETENTION" ] && echo -e "\n📌 Retention policy: $RETENTION" >> "$LOGFILE" + +# ✉️ Telegram en
+LOG_TEXT=$(cat "$LOGFILE" | sed 's/&/\&/g; s/\</g; s/>/\>/g')
+curl -s -X POST "$TG_URL" \
+ -d "chat_id=$TELEGRAM_CHAT_ID" \
+ -d "parse_mode=HTML" \
+ --data-urlencode "text=${LOG_TEXT}" > /dev/null
+
+exit $STATUS