Questo articolo descrive come impostare un processo cron che esegue automaticamente il backup di un database MySQL in un file a intervalli specifici.
Backup automatizzati del database utilizzando i lavori cron
Esistono due modi per eseguire processi cron che eseguono il backup di un database MySQL. Puoi includere le informazioni di accesso a MySQL nel comando cron job stesso, oppure puoi utilizzare un file di configurazione per memorizzare le informazioni di accesso a MySQL.
Metodo n. 1:includi le informazioni di accesso a MySQL nel comando cron job
Puoi eseguire backup programmati di un database MySQL creando un processo cron che esegue il comando seguente:
/usr/bin/mysqldump --routines -u dbusername -p'dbpassword' dbname > ${HOME}/path/backup.sql
Sostituire dbusername con l'utente del database, dbpassword con la password dell'utente del database, dbname con il database di cui eseguire il backup e percorso con il percorso in cui si desidera archiviare il file di backup. Questo esempio utilizza backup.sql per il nome file del backup, ma puoi utilizzare qualsiasi nome file desideri.
- Le virgolette singole (') intorno alla password assicurano che tutti i caratteri speciali vengano elaborati correttamente.
- Quando il comando viene eseguito correttamente, non viene generato alcun output. Tuttavia, se si verifica un errore o una configurazione errata, a seconda della configurazione dell'account è possibile che venga visualizzato un messaggio di posta elettronica contenente l'output del comando. Per eliminare i messaggi di posta elettronica quando il comando non riesce, aggiungi il testo seguente alla fine del comando cron job:
2>/dev/null
La maggior parte delle persone, tuttavia, desidera essere avvisata quando un processo cron fallisce.
Per informazioni su come utilizzare cPanel per creare un cron job, consulta questo articolo.
Metodo n. 2:utilizzare un file di configurazione per memorizzare le informazioni di accesso a MySQL
In alternativa, puoi creare un file di configurazione nella tua home directory che memorizza le informazioni di accesso a MySQL. Usando questo metodo, non è necessario includere le informazioni di accesso nei comandi di cron job. Per fare ciò, segui questi passaggi:
- Crea un file denominato .my.cnf nella tua /home/ username, sostituendo username con il nome utente del tuo account. Assicurati di includere il iniziale. nel nome del file.
- Copia e incolla il seguente testo in .my.cnf file. Sostituire dbusername con l'utente del database e sostituire dbpassword con la password dell'utente del database:
[client] user = dbusername password = "dbpassword" host = localhost
-
Crea un lavoro cron che esegua il comando seguente. Sostituire dbname con il nome del database di cui eseguire il backup e sostituire path con il percorso in cui archiviare il file di backup. Questo esempio utilizza backup.sql per il nome file del backup, ma puoi usare qualsiasi nome file che desideri:
mysqldump --routines dbname > /path/backup.sql
Quando il comando viene eseguito correttamente, non viene generato alcun output. Tuttavia, se si verifica un errore o una configurazione errata, a seconda della configurazione dell'account è possibile che venga visualizzato un messaggio di posta elettronica contenente l'output del comando. Per eliminare i messaggi di posta elettronica quando il comando non riesce, aggiungere il testo seguente alla fine del comando cron job:
2>/dev/null
La maggior parte delle persone, tuttavia, desidera essere avvisata quando un processo cron fallisce.
Per informazioni su come utilizzare cPanel per creare un cron job, consulta questo articolo.
Maggiori informazioni
Per ulteriori informazioni su mysqldump programma, visitare http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html.