In dit artikel wordt beschreven hoe u een cron-taak instelt die met bepaalde tussenpozen automatisch een back-up van een MySQL-database naar een bestand maakt.
Geautomatiseerde databaseback-ups met cron-jobs
Er zijn twee manieren om cron-taken uit te voeren die een back-up maken van een MySQL-database. U kunt MySQL-inloggegevens opnemen in de cron job-opdracht zelf, of u kunt een configuratiebestand gebruiken om de MySQL-inloggegevens op te slaan.
Methode #1:MySQL-inloggegevens opnemen in de cron job-opdracht
U kunt geplande back-ups van een MySQL-database uitvoeren door een cron-taak te maken die de volgende opdracht uitvoert:
/usr/bin/mysqldump --routines -u dbusername -p'dbpassword' dbname > ${HOME}/path/backup.sql
Vervang dbusername door de databasegebruiker, dbpassword door het wachtwoord van de databasegebruiker, dbname door de database waarvan een back-up moet worden gemaakt en pad door het pad waar u het back-upbestand wilt opslaan. Dit voorbeeld gebruikt backup.sql voor de bestandsnaam van de back-up, maar u kunt elke gewenste bestandsnaam gebruiken.
- De enkele aanhalingstekens (') rond het wachtwoord zorgen ervoor dat eventuele speciale tekens correct worden verwerkt.
- Als de opdracht met succes wordt uitgevoerd, wordt er geen uitvoer gegenereerd. Als er echter een fout of verkeerde configuratie is, kunt u, afhankelijk van uw accountconfiguratie, een e-mailbericht ontvangen dat de uitvoer van de opdracht bevat. Om e-mailberichten te onderdrukken wanneer de opdracht mislukt, voegt u de volgende tekst toe aan het einde van de cron job-opdracht:
2>/dev/null
De meeste mensen willen echter een melding krijgen wanneer een cronjob mislukt.
Raadpleeg dit artikel voor informatie over het gebruik van cPanel om een cron-taak te maken.
Methode #2:gebruik een configuratiebestand om MySQL-inloggegevens op te slaan
Als alternatief kunt u een configuratiebestand in uw homedirectory maken waarin MySQL-aanmeldingsgegevens zijn opgeslagen. Met deze methode hoeft u geen inloggegevens op te nemen in uw cron job-opdrachten. Volg hiervoor deze stappen:
- Maak een bestand met de naam .my.cnf in je /home/ gebruikersnaam directory, waarbij gebruikersnaam wordt vervangen door de gebruikersnaam van uw account. Zorg ervoor dat u de leidende opneemt. in de bestandsnaam.
- Kopieer en plak de volgende tekst in de .my.cnf het dossier. Vervang dbusername door de databasegebruiker en vervang dbpassword door het wachtwoord van de databasegebruiker:
[client] user = dbusername password = "dbpassword" host = localhost
-
Maak een cron-taak die de volgende opdracht uitvoert. Vervang dbname door de naam van de database waarvan u een back-up wilt maken en vervang pad door het pad om het back-upbestand op te slaan. Dit voorbeeld gebruikt backup.sql voor de bestandsnaam van de back-up, maar u kunt elke gewenste bestandsnaam gebruiken:
mysqldump --routines dbname > /path/backup.sql
Wanneer de opdracht met succes wordt uitgevoerd, wordt er geen uitvoer gegenereerd. Als er echter een fout of verkeerde configuratie is, kunt u, afhankelijk van uw accountconfiguratie, een e-mailbericht ontvangen dat de uitvoer van de opdracht bevat. Om e-mailberichten te onderdrukken wanneer de opdracht mislukt, voegt u de volgende tekst toe aan het einde van de cron job-opdracht:
2>/dev/null
De meeste mensen willen echter een melding krijgen wanneer een cronjob mislukt.
Raadpleeg dit artikel voor informatie over het gebruik van cPanel om een cronjob te maken.
Meer informatie
Voor meer informatie over de mysqldump programma, gaat u naar http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html.