From 3d63c4484db75558bad9ee02da39601acaae2610 Mon Sep 17 00:00:00 2001 From: Master Date: Sat, 18 Jul 2026 10:13:54 +0200 Subject: [PATCH] feat: push off-site des backups vers Proton Drive (rclone) Etage 2 de la strategie de backup : 3-2-1 complet. - rclone v1.74.4 (ARM64) + remote 'proton' sur compte DEDIE bertha.cloud@proton.me (cloisonnement : une fuite n expose pas le compte Proton principal) - push apres verification d integrite, rotation distante alignee (30) - l echec du push n echoue PAS le backup local : sortie offsite:OK(n)/KO, visible dans l alerte mail DSM - config rclone en 600 chez root (la tache DSM tourne en root) --- backup_trilium.sh | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/backup_trilium.sh b/backup_trilium.sh index f25a2e8..157661f 100644 --- a/backup_trilium.sh +++ b/backup_trilium.sh @@ -50,6 +50,22 @@ cd $DEST || exit 1 ls -1t trilium_*.db 2>/dev/null | tail -n +$((GARDER+1)) | while read f; do rm -f "$f"; done chmod 600 "$CIBLE" +# 5. Push off-site vers Proton Drive (n echoue PAS le backup local si KO) +REMOTE="proton:Backups/trilium" +OFFSITE="offsite:KO" +if command -v rclone >/dev/null 2>&1; then + if rclone copy "$CIBLE" "$REMOTE/" --max-duration 5m >/dev/null 2>&1; then + # rotation distante : garder les N plus recents + rclone lsf "$REMOTE/" 2>/dev/null | grep '^trilium_.*\.db$' | sort -r | tail -n +$((GARDER+1)) | while read f; do + rclone deletefile "$REMOTE/$f" >/dev/null 2>&1 + done + NBREMOTE=$(rclone lsf "$REMOTE/" 2>/dev/null | grep -c '^trilium_.*\.db$') + OFFSITE="offsite:OK($NBREMOTE)" + fi +else + OFFSITE="offsite:rclone-absent" +fi + TAILLE=$(du -h "$CIBLE" | cut -f1) RESTANT=$(ls -1 trilium_*.db 2>/dev/null | wc -l) -echo "OK $CIBLE ($TAILLE, $NBNOTES notes, $RESTANT backups conserves)" +echo "OK $CIBLE ($TAILLE, $NBNOTES notes, $RESTANT locaux, $OFFSITE)"