|
@@ -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
|
|
|
-
|
|
|
-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.
|
|
|
-
|
|
|
-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
|
|
|
+backup di config, data, themes, and custom-apps
|
|
|
+ #zip -r /home/backups_dispensa/data-nextcloud_$(date +%Y%m%d%H%M).zip /var/app
|
|
|
|
|
|
-e quindi ora quel backup lo potremmo vedere come images
|
|
|
+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
|
|
|
|
|
|
- docker images
|
|
|
+### 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/
|
|
|
|
|
|
-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
|
|
|
+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/
|
|
|
+
|
|
|
+---
|
|
|
|
|
|
-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
|
|
|
|
|
|
|
|
|
|