diff --git a/backup_pbs2pbs.sh b/backup_pbs2pbs.sh new file mode 100644 index 0000000..524ea51 --- /dev/null +++ b/backup_pbs2pbs.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +# ๐Ÿ” Auth avec API Token +export PBS_REPOSITORY="backup@pbs!pveclient2@192.168.1.101:marechal-pbs" +export PBS_PASSWORD="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + +PXAR_NAME="root.pxar" +BACKUP_ID="pbs-self" +LOGFILE="/var/log/backup-pbs-self.log" + +# ๐Ÿ“ค Discord Webhook +WEBHOOK="https://discord.com/api/webhooks/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + +# ๐Ÿ•’ Dรฉbut +START_TIME="$(date)" +echo -e "[$START_TIME]\n๐Ÿ”„ Starting backup of / to $PBS_REPOSITORY as $PXAR_NAME (ID: $BACKUP_ID)" > "$LOGFILE" + +# ๐Ÿš€ Backup +proxmox-backup-client backup "$PXAR_NAME:/" --repository "$PBS_REPOSITORY" --backup-id "$BACKUP_ID" >> "$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 (optionnel) +RETENTION=$(proxmox-backup-client snapshot list --repository "$PBS_REPOSITORY" --backup-id "$BACKUP_ID" 2>/dev/null | grep 'keep-' | tail -n1 | tr -d ' ') +[ -n "$RETENTION" ] && echo -e "\n๐Ÿ“Œ Retention policy: $RETENTION" >> "$LOGFILE" + +# ๐Ÿ“ค Notification Discord avec log en piรจce jointe +curl -F "payload_json={\"content\":\"๐Ÿ“ฆ Rapport sauvegarde PBS (ID: $BACKUP_ID)\"}" \ + -F "file=@$LOGFILE;type=text/plain" \ + "$WEBHOOK"