1,424 21/03/2026 07/04/2026 3 min

Se gestisci un VPS di produzione con un database MySQL, sapere come eseguire backup regolari è fondamentale per la sicurezza dei dati. In questo articolo, vedremo come automatizzare il processo di backup utilizzando mysqldump e cron, garantendo che i tuoi dati siano sempre al sicuro, anche in caso di guasti hardware o errori umani.

Prerequisiti

  • Un server VPS con sistema operativo Linux (Ubuntu, Debian, CentOS)
  • Accesso root o permessi sudo
  • MySQL installato e configurato
  • Conoscenza base di shell e comandi Linux

Step 1: Creare uno script di backup

Il primo passo consiste nel creare uno script bash che utilizzi mysqldump per eseguire il backup del database.

#!/bin/bash

# Variabili
DB_USER='tuo_username'
DB_PASS='tua_password'
DB_NAME='tuo_database'
BACKUP_DIR='/percorso/dove/salvare/backup'

# Data e ora per il nome del file
DATA=$(date +"%Y%m%d_%H%M%S")

# Comando di backup
mysqldump -u $DB_USER -p$DB_PASS $DB_NAME > $BACKUP_DIR/${DB_NAME}_$DATA.sql

# Output: Nessun output se il backup ha successo.

Perché funziona: Questo script utilizza mysqldump per esportare il database in un file SQL, includendo la data e l'ora nel nome del file per una facile identificazione.

Note:

Assicurati di modificare tuo_username, tua_password, tuo_database e /percorso/dove/salvare/backup con i valori appropriati.

Step 2: Rendere eseguibile lo script

Per poter eseguire lo script, è necessario renderlo eseguibile.

chmod +x /percorso/del/tuo/script.sh

# Output: Nessun output atteso.

Perché funziona: Il comando chmod modifica i permessi del file per renderlo eseguibile.

Step 3: Pianificare il backup con Cron

Ora è il momento di pianificare il backup automatico utilizzando cron.

crontab -e

# Aggiungi la seguente riga per eseguire il backup ogni giorno a mezzanotte:

0 0 * * * /percorso/del/tuo/script.sh

# Output: Nessun output atteso.

Perché funziona: La riga di cron specifica che lo script verrà eseguito ogni giorno a mezzanotte.

Verifica finale

Per verificare che tutto funzioni correttamente, puoi controllare la cartella dei backup.

ls -l /percorso/dove/salvare/backup

# Output: Dovresti vedere i file di backup con la data e l'ora.

Interpretazione: Se i file sono presenti, il backup è stato eseguito correttamente.

Troubleshooting

Di seguito sono elencati alcuni errori comuni che potresti incontrare.

  • Errore: mysqldump: Got error: 1045: Access denied for user 'tuo_username'@'localhost' (using password: YES)
    Causa: Le credenziali fornite non sono corrette.
    Soluzione: Verifica username e password nel tuo script.
  • Errore: mysqldump: Couldn't find table: tuo_database
    Causa: Il database specificato non esiste.
    Soluzione: Controlla che il nome del database sia corretto.
  • Errore: bash: /percorso/del/tuo/script.sh: No such file or directory
    Causa: Il percorso dello script è errato.
    Soluzione: Assicurati che il percorso sia corretto e che lo script esista.

Conclusione

Abbiamo creato uno script per eseguire il backup automatico di MySQL su un VPS utilizzando mysqldump e cron. Il passo successivo è monitorare i backup e assicurarti che vengano eseguiti correttamente nel tempo.