47 lines
1.3 KiB
Bash
47 lines
1.3 KiB
Bash
#!/bin/sh
|
|
|
|
PATH=/usr/local/bin:/usr/bin:/bin
|
|
|
|
# --- CONFIGURATION ---
|
|
REPO="sftp:anto@192.168.1.168:/media/anto/Maxtor/restic-backup"
|
|
BACKUP_PATH="/mnt"
|
|
PASSWORD_FILE="/root/.restic_pass"
|
|
DISCORD_WEBHOOK="https://discord.com/api/webhooks/1483223739494830233/3b9BOJh27jAGB9tKhslInnSpBngIg_4cedC1s5s5D1bvL-u_Rw3EMm3U6CEkkFY2fNo5"
|
|
|
|
export RESTIC_PASSWORD_FILE=$PASSWORD_FILE
|
|
|
|
# --- Fonction notification Discord ---
|
|
send_discord() {
|
|
MESSAGE=$(printf "%s" "$1" | tr '\n' ' ' | sed 's/"/\\"/g' | cut -c1-1800)
|
|
|
|
/usr/local/bin/curl -s -o /tmp/discord_status.txt -w "%{http_code}" \
|
|
-H "Content-Type: application/json" \
|
|
-d "{\"content\":\"$MESSAGE\"}" \
|
|
"$DISCORD_WEBHOOK"
|
|
}
|
|
|
|
|
|
HOST=$(hostname)
|
|
DATE=$(date)
|
|
|
|
send_discord "**Backup restic démarrée** sur **$HOST** à $DATE"
|
|
echo "Discord HTTP status: $(cat /tmp/discord_status.txt)"
|
|
LOG=$(mktemp)
|
|
|
|
# --- BACKUP ---
|
|
restic -r $REPO backup $BACKUP_PATH 2>&1 | tee $LOG
|
|
STATUS=$?
|
|
|
|
# --- RETENTION ---
|
|
restic -r $REPO forget --keep-daily 7 --keep-weekly 4 --keep-monthly 12 >> $LOG 2>&1
|
|
restic -r $REPO prune >> $LOG 2>&1
|
|
|
|
# --- STATS ---
|
|
SUMMARY=$(grep -E "Files:|Added to the repository|processed|snapshot" $LOG)
|
|
SUMMARY=$(echo "$SUMMARY" | tr '\n' ' ' | cut -c1-1500)
|
|
|
|
send_discord "✅ **Backup réussie sur $HOST**
|
|
|
|
📦 Résumé:
|
|
$SUMMARY"
|