date +%u) og antal dage tilbage i måneden. Sætter BACKUP_TYPE til daily, weekly eller monthly. Typen indgår direkte i filnavnet.backup_stats.sh og kalder stats_begin_run for at oprette ny kørselspost i drift-databasen.ERROR=1.<db>_<type>_<dato>.sql, derefter gzip. Stats registreres med filsti via stats_record_db(). Fejl springer til næste DB.$BACKUP_DIR til nextcloud:Backup. Aktivitet logges i rclone.log på INFO-niveau.find … -mtime +7 -delete sletter alle .gz-filer lokalt ældre end 7 dage, uanset type. Logfiler berøres ikke.rclone delete-kald med type-specifikke --include-mønstre. Daily slettes efter 7d, weekly efter 30d, monthly efter 180d. Typerne kan aldrig slette hinandens filer.stats_end_run afslutter kørslen og printer opsummering. Exit-kode 0 ved succes, 1 ved fejl — synligt for cron og systemd.| Variabel | Standardværdi | Beskrivelse |
|---|---|---|
| BACKUP_DIR | /data/db-backup | Lokal mappe til backup-filer og logfiler |
| REMOTE | nextcloud:Backup | rclone-destination — remote-navn og sti |
| LOGFILE | $BACKUP_DIR/backup.log | Appended log for alle script-hændelser |
| SLACK_WEBHOOK | https://hooks.slack.com/… | Webhook til Slack-notifikationer ved fejl (kommenteret ud) |
| MAIL_TO | kao@purpurdata.dk | Modtager af fejl-e-mails (kommenteret ud) |
| STATS_DB_USER | xxxxxx | MariaDB-bruger til stats-databasen |
| STATS_DB_NAME | drift | Database hvor backup-statistik gemmes |
| STATS_TRIGGERED_BY | cron | Sæt til manual ved manuel kørsel |
| STATS_GROWTH_THRESHOLD | 20 | Procentvis vækst der trigger advarsel i stats-modulet |
| STATS_SLACK_WEBHOOK | https://hooks.slack.com/… | Slack-webhook specifikt til stats-notifikationer |