snellisco la pagina di backup, riducendola ai soli comandi necessari

This commit is contained in:
blat 2021-03-04 23:56:46 +01:00
parent 2d040ab06f
commit 820fabd51c

View file

@ -1,123 +1,65 @@
---
title: Backup del nextcloud dispensa
title: Backup di nextcloud
sidebar: mydoc_sidebar
summary: "mettere la sicuro i dati della comunità di tanto in tanto"
permalink: mydoc_backup.html
folder: mydoc
---
# Backup
https://docs.nextcloud.com/server/20/admin_manual/maintenance/backup.html
https://docs.docker.com/storage/volumes/#backup-restore-or-migrate-data-volumes
https://docs.docker.com/storage/volumes/
To backup a Nextcloud installation there are four main things you need to retain:
* commit dei cointainer running
* zip della cartella /var/app
* zip dei volumi (?)
* aggiornare
* pulizia immagini e volumi
The config folder
The data folder
The theme folder
The database
### Sul server
connettersi al server tramite ssh
ssh-add -D;
ssh-add -i ~/.ssh/sshcampiaperti;
ssh -vvv -p 2222 -l root campiaperti.tetaneutral.net
## Backuppare i container
impostare la modalità manutenzione
docker exec -u www-data nextcloud-app php occ maintenance:mode --on
docker ps
backup di config, data, themes, and custom-apps
#zip -r /home/backups_dispensa/data-nextcloud_$(date +%Y%m%d%H%M).zip /var/app
backup del db
docker exec -i nextcloud-mariadb mysqldump --single-transaction -u [username] -p[password] [db_name] > /home/backups_dispensa/nextcloud-sqlbkp_`date +"%Y%m%d"`.bak
### Sul proprio PC
scaricare il backup del db
scp -P 2222 -r root@campiaperti.tetaneutral.net:/home/backups_dispensa/nextcloud-sqlbkp_`date +"%Y%m%d"`.bak /home/$USER/
Segnarsi gli id dei container di cui si vuole avere una copia, tipo una fotografia "istantanea".
In questo modo avremo una image, che con un secondo comando trasformeremo in un file zip o tar e quindi ce lo scaricheremo.
scaricare il backup di config, data, themes, and custom-apps
scp -P 2222 -r root@campiaperti.tetaneutral.net:/home/backups_dispensa/nextcloud-app_1.tar /home/$USER/
---
Es se vogliamo backuppare 8ce5000307c8 gli diremo:
docker commit -p nextcloud-app nextcloud-app_bakup$(date +%Y%m%d%H%M)_1
docker commit -p nextcloud-mariadb nextcloud-mariadb_bakup$(date +%Y%m%d%H%M)_1
docker commit -p nextcloud-proxy nextcloud-proxy_bakup$(date +%Y%m%d%H%M)_1
docker commit -p nextcloud-letsencrypt nextcloud-letsencrypt_bakup$(date +%Y%m%d%H%M)_1
e quindi ora quel backup lo potremmo vedere come images
docker images
e se lo vogliamo scaricare come un solo file compresso
docker save -o ~/backup_dispensa/nextcloud_bakup_1.tar nextcloud_bakup_201806031351_1
Importante valutare lo spazio sul Server! In caso scaricarsela e poi cancellarla.
Valutare di spostare i backup su un altra macchina online, così magari è più veloce rispristinarla .
Intanto scaricarsi i file, da locale, dare il comando:
scp -P 2222 -r root@campiaperti.tetaneutral.net:/home/backups_dispensa/nextcloud-app_1.tar /home/latuahome/
## Backup di dati e volumi di nextcloud
dal file docker_compose si capisce che i volumi che usiamo per nextcloud sono:
volumes:
- nextcloud (/var/lib/docker/volumes/var_nextcloud/):/var/www/html
- ./app/config:/var/www/html/config
- ./app/custom_apps:/var/www/html/custom_apps
- ./app/data:/var/www/html/data
- ./app/themes:/var/www/html/themes
- /etc/localtime:/etc/localtime:ro
Quindi backuppando /var/app prendiamo config, custom_apps, data e themes
zip -r /home/backups_dispensa/data-nextcloud_$(date +%Y%m%d%H%M).zip /var/app
e ci copiamo pure tutti i dati del container, cioè proprio il software del nexcloud:
zip -r /home/backups_dispensa/volumes-nextcloud_$(date +%Y%m%d%H%M).zip /var/lib/docker/volumes/var_nextcloud/
Sempre dal docker-compose.yml vediamo che i file del database sono
db (/var/lib/docker/volumes/var_db):/var/lib/mysql
zip -r /home/backups_dispensa/volumes-db_$(date +%Y%m%d%H%M).zip /var/lib/docker/volumes/var_db
Scaricarsi tutti i file sul proprio pc facendo scp.
Per vedere
docker system df
## Backuppare il db in un altro modo (questo fuori dalla filosofia docker)
https://mariadb.com/kb/en/library/mysqldump/
mysql -u root -p
shell> show databases;
Così in realtà da fuori maria db gli puoi chiedere mysqldump -u root -p -x -A > /home/mariadb_backup-2019-08.sql
Se cerchi qualche cosa..
use nextcloudviola;
show table;
### utile per eseguire comandi da shell entro ad un container
docker -exec -ti 8685eace1ae4 /bin/bash
### ogni volta che si docker-compose down e up
C'è da ripristinare una configurazione di nginix
#### Ripristinare configurazione di nginix "client_max_body_size"
docker exec -ti nextcloud-proxy /bin/bash
poi da dentro al container
da dentro al container
vi /etc/nginx/nginx.conf
Aggiungere la riga dentro a http {…}
aggiungere la riga dentro a http {…}
client_max_body_size 20M;
E dare un riavvio ad nginx
riavviare ad nginx
nginx -s reload
Fatto!
---
#### Togliere la modalità manutenzione
docker exec -u www-data nextcloud-app php occ maintenance:mode --off