Programmare i backup MySQL con il Task Scheduler

Spesso si ha la necessità di dover programmare i backup del nostro server locale, macchina di sviluppo oppure un server esterno in modo da avere sempre una copia di sicurezza dei nostri database.

Windows ci viene incontro fornendoci il Task Scheduler, nella versione italiana “Unità di pianificazione” che grazie alla sua personalizzazione è in grado di lanciare eseguibili, comandi ed operazioni ad una determinata ora e giorno, ripetendo la cosa ciclicamente. Un vero e proprio equivalente del crontab di Unix.

Nel mio esempio specifico programmerò un processo pianificato in modo da eseguire il backup di un database mysql.

Requisiti

  • MySQL installato sulla macchina che esegue l’operazione (
    (XAMPP – oppure MySQL)
  • Eseguibile di MySQL aggiunto alla PATH di sistema

Controllare che il bin di MySQL sia stato aggiunto alla PATH di sistema

Creiamo un nuovo documento .bat, nel mio caso chiamato start.bat ed inseriamo il seguente comando:

 

mysqldump -h"il nostro host" -u"il nostro utente" -p"la nostra password" nome_database> C:\directory\nomefile.sql
-h “host”, specifica l’host su cui eseguire l’operazione, può essere anche un host remoto.
Qui sotto uno screenshot che mostra la possibilità d’inserire in ogni riga un comando diverso in modo da avere la possibilità di salvare il file in directory distinte, oppure lanciare backup di host o database differenti.
Nel mio caso mando il dump su due dischi differenti ed un terzo su OneDrive.

Inserire la data nel nome del file .sql

Come da screenshot è possibile inserire la data usando:

il_mio_backup_%date:~-4,4%%date:~-7,2%%date:~-10,2%.sql

Testiamo il nostro file bat (file di operazioni batch)

Rechiamoci nella directory del file bat, facciamo tasto destro in un punto qualsiasi della cartella tenendo premuto SHIFT, selezioniamo quindi “Apri finestra di comando qui”, oppure “Apri finestra PoweShell qui”, in modo da aprire la console direttamente nella directory scelta. Nel caso di Powershell: una volta aperto il terminale scriviamo cmd per uscire da Powershell ed andare nel classico cmd.

Nel terminale infine eseguiamo il nostro file .bat, scrivendo start.bat.

Se MySQL viene letto dalla path globale di sistema tutto dovrebbe andare a buon fine, in caso contrario riceverete un messaggio di errore.

 

Programmare ed avviare il file automaticamente con Task Scheduler

Cerchiamo su Cortana: “Unità di pianificazione” e battiamo invio.

Sulla parte sinistra è possibile creare cartelle per rendere tutto più ordinato e sulla parte destra è possibile aggiungere nuove attività. Premiamo: Crea attività di base

Seguiamo la procedura guidata ed inseriamo nella parte azione il nostro file start.bat

Salviamo e finiamo la procedura.

Il Task Scheduler è uno degli strumenti amministrativi più potenti di Windows, permettendo di fare operazioni automatiche al pc durante tutta la nostra settimana lavorativa e facilitando i nostri compiti.