Come scrivere e schedulare uno Script Bash per Backup Database MySQL Linux, per mettere al sicuro i database del server.

Cosa è uno script Bash

Uno script Bash è un file di testo che contiene una serie di comandi per sistemi operativi a base Unix, come ad esempio Linux, scritti in linguaggio di scripting Bash.

Gli script Bash vengono utilizzati per automatizzare molteplici azioni, come ad esempio l’esecuzione di comandi di sistema, la manipolazione dei file, la creazione di backup, la gestione dei processi ecc…

Gli script Bash possono essere eseguiti direttamente dal terminale o possono essere pianificati per essere eseguiti in un momento specifico utilizzando strumenti come il crontab di Linux.

ATTENZIONE. I passi di seguito riportati devono essere eseguiti da persone esperte in quanto sono potenzialmente pericolosi e potrebbero danneggiare il server. Se non sai cosa stai facendo puoi richiederci un preventivo gratuito.

Creare uno Script Bash per Backup Database MySQL Linux

Come prima cosa occorrerà creare una cartella dove inserire i backup di tutti i database

cd /var/ww/vhosts/
mkdir backups

Creare un file .sh, per esempio MySqlBackup.sh, all’interno della cartella precedentemente creata

cd backups
touch MySqlBackup.sh

Editare il file inserendo le seguenti istruzioni bash:

#!/bin/bash
 
USER="DB_USERNAME"
PASSWORD="DB_PASSWORD"
OUTPUT="SERVER_FOLDER"
 
rm "$OUTPUT/*gz" > /dev/null 2>&1
 
databases=`mysql --user=$USER --password=$PASSWORD -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`
 
for db in $databases; do
    if [[ "$db" != "information_schema" ]] ; then
        echo "Dumping database: $db"
        mysqldump --force --opt --user=$USER --password=$PASSWORD --databases $db > $OUTPUT/$db.`date +%Y%m%d`.sql
        gzip $OUTPUT/$db.`date +%Y%m%d`.sql
    fi
done

dove bisogna modificare i seguenti parametri seguenti con i propri dati:

  • DB_USERNAME: nome utente MySQL che deve avere i permessi di lettura su tutti i database
  • DB_PASSWORD: password utente MySQL
  • SERVER_FOLDER: la cartella dove inserire i backup

Assegnare gli opportuni permessi al file .sh

chmod 700 MySqlBackup.sh

Eseguire lo script bash appena creato e verificarne il funzionamento

./MySqlBackup.sh

Creare un cron per lo Script Bash di Backup

Assegnare un orario per l’esecuzione automatica dello script con crontab

crontab -e
00 02 * * * /SERVER_FOLDER/MySqlBackup.sh

Preventivo Assistenza Linux

    Contattaci per un preventivo gratuito