first commit
This commit is contained in:
46
restic/backup_restic.sh
Normal file
46
restic/backup_restic.sh
Normal file
@@ -0,0 +1,46 @@
|
||||
#!/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"
|
||||
Reference in New Issue
Block a user