Come eseguire il backup del container mariadb

In rilievo

Per eseguire in tranquillità le operazioni di manutenzione del sito, come l’aggiornamento dei plugin o del wordpress medesimo, si è reso necessario il backup locale del database, tramite il salvataggio in un file SQL.

Per effettuare il backup del database presente nel container docker, è necessario soltanto il comando sottostante:

docker-compose exec -T mariadb sh -c 'exec mysqldump "$MYSQL_DATABASE" -u"$MYSQL_USER" -p"$MYSQL_PASSWORD"'
Code language: JavaScript (javascript)

mariadb è il nome del servizio presente nel file docker-compose.yml

Alternativamente il seguente è il comando equivalente se non usiamo docker-compose, wordpress_mariadb_1 è il nome del container:

docker exec wordpress_mariadb_1 sh -c 'exec mysqldump "$MYSQL_DATABASE" -u"$MYSQL_USER" -p"$MYSQL_PASSWORD"'
Code language: JavaScript (javascript)

Il comando mostrerà sullo standard output il dump SQL del database, per salvarlo in un file dovrà essere aggiunto al termine del comando " > nome_file.sql"

Per semplificare la creazione del backup è stato creato uno shell script in maniera similare a quanto fatto nell’articolo Come esportare i certificati di traefik.

#!/bin/sh cd /srv/wordpress/ DATE=`date +"%Y-%m-%d"` FILENAME="database_${DATE}.sql" docker-compose exec -T mariadb sh -c 'exec mysqldump "$MYSQL_DATABASE" -u"$MYSQL_USER" -p"$MYSQL_PASSWORD"' > database_backup/$FILENAME
Code language: PHP (php)

Riga 5 – Salva la data odierna in una variabile, nel formato %Y-%m-%d, es. 2021-09-26
Riga 6 – Salva in una variabile il nome del file formattato con la data, es. database_2021-09-26.sql
Riga 8 – Esegue il comando per ricevere il dump del database ed indica come percorso di salvataggio la cartella database_backup/ e la variabile della riga 6

Esecuzione automatica

Possiamo usare crontab per automatizzare l’esecuzione periodica dello script precedentemente creato.

# "crontab -e" è solitamente il comando modificare crontab 0 0 * * 0 /usr/bin/sh /srv/wordpress/backup-database.sh >/dev/null 2>&1
Code language: PHP (php)

Il valore 0 0 * * 0 esegue il comando ogni domenica alla mezzanotte.

Perchè abbiamo bisogno di una VPN ?

In rilievo

Ogni provider che fornisce un collegamento ad internet offre o richiede un modem/router che ci permette di accedere e navigare in rete ma che allo stesso tempo impedisce a chiunque dall’esterno di arrivare alle risorse dei nostri PC. E’ un’efficace protezione, ma impedisce  una qualsiasi pubblicazione di servizi o risorse. Se vogliamo condividere una cartella con dei files, un nostro sito web, un programma che comunica in rete, non possiamo perchè il modem/router impedisce l’accesso dall’esterno.

Una soluzione al problema è quella di creare una rete VPN dove i client si collegano ad un nostro server di rete impiegando WireGuard. I client (due o più computer) aprono delle connessioni verso il server di rete e questo fa da “ponte” (bridging) permettendo la comunicazione fra i client. Al termine della configurazione oltre alla nostra rete di casa, es: 192.168.1.x avremo un’altra rete es: 10.1.2.x con la quale comunicheremo con gli altri PC connessi.

Non ci dobbiamo preoccupare dei numeri di rete, il server avrà un servizio DNS che ci permetterà di accedere con i classici nomi di dominio, es: clientA.famigliarossi.vpn, clientB.famigliarossi.vpn, etc…

Nei prossimi articoli vedremo in dettaglio come configurare la nostra rete VPN personale.

Pubblicato in Vari

Il sito adesso è nativamente attivo su IPv6

CC-BY Christoph Scholz

Da oggi il sito supporta nativamente le connessioni tramite il protocollo IPv6.
Di seguito in sintesi i passaggi che abbiamo effettuato per abilitarlo.
Molti saranno riferiti al provider utilizzato per il sito, OVH.

  1. Impostazione del reverse DNS (facoltativo)
  2. Annotazione dei dati IPv6
  3. Impostazione zona DNS
  4. Attivazione IPv6 sul server (necessario accesso SSH)
Continua a leggere Il sito adesso è nativamente attivo su IPv6