diff --git a/docs/10_Features.md b/docs/10_Features.md index 9cdf2cb060b56c7466881551b1465ddba24b9a9a..134bd0bd72a193b73ef61bd82e4b64fe5fd81e74 100644 --- a/docs/10_Features.md +++ b/docs/10_Features.md @@ -14,9 +14,21 @@ For backup it makes * locally encrypted files will be transferred to a mounted dir, ssh, rsync, https, (the available backaneds depend on the used backup tool) ... to a backup target system * on the backup target each system has its own subdirectory or repository to store its data +```mermaid +graph LR + Start((Start)) --> | Cronjob<br>in the night | backup.sh(backup.sh:<br><br>init config) + + backup.sh --> localdump.sh(localdump.sh:<br><br>Dump<br>local<br>databases) + localdump.sh --> transfer.sh(transfer.sh:<br><br>Secure<br>file backup<br>using Restic<br>or Duplicity) + transfer.sh --> End((End)) + +``` + +<html><!--  +--></html> -# Database backup # +# Dump local databases # Before starting the backup of local files to a backup target there is a step to dump a local database. If one of the supported database types is detected it will be dumped. @@ -34,6 +46,44 @@ Limited support: * couchdb (using a config with naming convention) * ldap (without restore so far) +```mermaid +graph LR + + %% --- define nodes ---------- + + localdump.sh(localdump.sh) + loopdbs((Loop over<br>dabase types)) + db1[(mysql)] + db2[(pgsql)] + db3[(...)] + + db1A[db A] + db1B[db B] + db1C[db C] + + subgraph /var/iml-backup/mysql/ + dump1A[dump A] + dump1B[dump B] + dump1C[dump C] + end + + %% --- connect nodes ---------- + + localdump.sh --> loopdbs + loopdbs --> db1 + loopdbs --> db2 + loopdbs --> db3 + + db1 --> db1A + db1 --> db1B + db1 --> db1C + + db1A --> dump1A + db1B --> dump1B + db1C --> dump1C + +``` + # File backup # It is a classic backup a set of directories. Includes and excludes can be defined (but I prefer to backup all files). @@ -42,6 +92,46 @@ The backup target for local database backups is included automatically. Additionally there is a flag for a local Samba: if enabled all found shares will treated as directory to backup. +```mermaid +graph LR + + %% --- define nodes ---------- + + transfer.sh(transfer.sh) + loopdirs((Loop over<br>set of dirs)) + + dir1(/etc) + dir2(/home) + dir3(/var/www) + dirA(/var/iml-backup/mysql) + dirB(...) + + backup(Backup<br>Restic or<br>Duplicity) + backuptarget(Remote Backup target<br>in the cloud<br>or on another<br>physical location) + verify(Verify<br>written<br>data) + + %% --- connect nodes ---------- + + transfer.sh --> loopdirs + + loopdirs --> dir1 + loopdirs --> dir2 + loopdirs --> dir3 + loopdirs --> dirA + loopdirs --> dirB + + dir1 --> backup + dir2 --> backup + dir3 --> backup + dirA --> backup + dirB --> backup + + backup --> |transfers<br>encrypted<br>files| backuptarget + backuptarget --> verify + +``` + + # Backup tools # ## Restic ##