add restic config
This commit is contained in:
81
backups/.autorestic.yaml
Normal file
81
backups/.autorestic.yaml
Normal file
@@ -0,0 +1,81 @@
|
||||
version: 2
|
||||
|
||||
|
||||
global:
|
||||
forget:
|
||||
keep-hourly: 24
|
||||
keep-daily: 7
|
||||
keep-weekly: 4
|
||||
keep-monthly: 12
|
||||
|
||||
backends:
|
||||
fch:
|
||||
type: sftp
|
||||
path: FCH_serveur:backups/
|
||||
|
||||
locations:
|
||||
nextcloud_data:
|
||||
from:
|
||||
- /var/lib/docker/volumes/docker_nextcloud
|
||||
to:
|
||||
- fch
|
||||
cron: 0 0 * * *
|
||||
forget: prune
|
||||
|
||||
|
||||
nextcloud_conf:
|
||||
from:
|
||||
- /var/lib/docker/volumes/docker_nextcloud-conf
|
||||
to:
|
||||
- fch
|
||||
cron: 0 0 * * *
|
||||
forget: prune
|
||||
|
||||
nextcloud_data:
|
||||
from:
|
||||
- /var/lib/docker/volumes/docker_nextcloud
|
||||
to:
|
||||
- fch
|
||||
cron: 0 0 * * *
|
||||
forget: prune
|
||||
|
||||
nextcloud_db:
|
||||
from:
|
||||
- /DATA/dump_bdd/nextcloud-db
|
||||
to:
|
||||
- fch
|
||||
cron: 0 0 * * *
|
||||
forget: prune
|
||||
hooks:
|
||||
before:
|
||||
- /DATA/docker/services/backups/backup_db.sh nextcloud-db postgresql
|
||||
|
||||
onlyoffice:
|
||||
from:
|
||||
- /var/lib/docker/volumes/docker_onlyoffice-cache
|
||||
- /var/lib/docker/volumes/docker_onlyoffice-data
|
||||
to:
|
||||
- fch
|
||||
cron: 0 0 * * *
|
||||
forget: prune
|
||||
|
||||
traefik-certs:
|
||||
from:
|
||||
- /DATA/docker/services/certs
|
||||
to:
|
||||
- fch
|
||||
cron: 0 0 * * *
|
||||
forget: prune
|
||||
|
||||
repos:
|
||||
from:
|
||||
- /DATA/docker/services/
|
||||
to:
|
||||
- fch
|
||||
options:
|
||||
backup:
|
||||
exclude:
|
||||
- '.git'
|
||||
cron: 0 0 * * *
|
||||
forget: prune
|
||||
|
||||
10
backups/autorestic.service
Normal file
10
backups/autorestic.service
Normal file
@@ -0,0 +1,10 @@
|
||||
[Unit]
|
||||
Description=Backups yay
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=autorestic -c /DATA/docker/services/backups/.autorestic.yml --ci cron
|
||||
# fail if backup takes more than 1 day
|
||||
TimeoutStartSec=86400
|
||||
IPAccounting=yes
|
||||
MemoryAccounting=yes
|
||||
9
backups/autorestic.timer
Normal file
9
backups/autorestic.timer
Normal file
@@ -0,0 +1,9 @@
|
||||
[Unit]
|
||||
Description=Backups yay
|
||||
|
||||
[Timer]
|
||||
# Trigger every 10 minutes
|
||||
OnCalendar=*:0/10:0
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
61
backups/backup_db.sh
Executable file
61
backups/backup_db.sh
Executable file
@@ -0,0 +1,61 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# usage: <script> <container-name> <database-type>
|
||||
#
|
||||
# exports the database of a running docker container in a dump in $BACKUP_DIR/$CONTAINER_NAME/
|
||||
|
||||
BACKUP_DIR=/DATA/dump_bdd/
|
||||
|
||||
# Check container existence
|
||||
|
||||
CONTAINER="$1"
|
||||
|
||||
if ! docker ps | grep -q "$CONTAINER"
|
||||
then
|
||||
echo "The container $CONTAINER doesn't exist or doesn't run"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check database type
|
||||
|
||||
TYPE="$2"
|
||||
|
||||
COMMAND=""
|
||||
|
||||
case "$TYPE" in
|
||||
postgresql)
|
||||
POSTGRES_USER=$(docker exec "$CONTAINER" env | grep POSTGRES_USER | cut -d= -f2)
|
||||
COMMAND="pg_dumpall -c -U $POSTGRES_USER"
|
||||
EXTENSION=sql
|
||||
;;
|
||||
mariadb)
|
||||
MARIADB_USER=$(docker exec "$CONTAINER" env | grep MYSQL_USER | cut -d= -f2)
|
||||
MARIADB_PASSWORD=$(docker exec "$CONTAINER" env | grep MYSQL_PASSWORD | cut -d= -f2)
|
||||
COMMAND="mariadb-dump -u $MARIADB_USER --password=$MARIADB_PASSWORD --all-databases"
|
||||
EXTENSION=sql
|
||||
;;
|
||||
mongodb)
|
||||
COMMAND="mongodump --archive"
|
||||
EXTENSION=mongodump
|
||||
;;
|
||||
ldap-config)
|
||||
COMMAND="slapcat -n 0"
|
||||
EXTENSION=config.ldif
|
||||
;;
|
||||
ldap-content)
|
||||
COMMAND="slapcat -n 1"
|
||||
EXTENSION=content.ldif
|
||||
;;
|
||||
*)
|
||||
echo "I don't know $TYPE database type."
|
||||
exit 1
|
||||
esac
|
||||
|
||||
# Ensure directory exists
|
||||
|
||||
mkdir -p "$BACKUP_DIR/$CONTAINER"
|
||||
|
||||
# Export database
|
||||
|
||||
docker exec "$CONTAINER" $COMMAND > "$BACKUP_DIR/$CONTAINER/dump.$EXTENSION"
|
||||
exit $?
|
||||
Reference in New Issue
Block a user