Den här artikeln beskriver hur man ställer in ett cron-jobb som automatiskt säkerhetskopierar en MySQL-databas till en fil med specifika intervall.
Automatisk säkerhetskopiering av databas med hjälp av cron-jobb
Det finns två sätt att köra cron-jobb som säkerhetskopierar en MySQL-databas. Du kan antingen inkludera MySQL-inloggningsinformation i själva cron-jobbkommandot, eller så kan du använda en konfigurationsfil för att lagra MySQL-inloggningsinformationen.
Metod #1:Inkludera MySQL-inloggningsinformation i cron-jobbkommandot
Du kan köra schemalagda säkerhetskopieringar av en MySQL-databas genom att skapa ett cron-jobb som kör följande kommando:
/usr/bin/mysqldump --routines -u dbusername -p'dbpassword' dbname > ${HOME}/path/backup.sql
Ersätt dbusername med databasanvändaren, dbpassword med databasanvändarens lösenord, dbname med databasen som ska säkerhetskopieras och sökvägen med sökvägen där du vill lagra säkerhetskopian. Det här exemplet använder backup.sql för säkerhetskopians filnamn, men du kan använda vilket filnamn du vill.
- De enkla citattecken (') runt lösenordet säkerställer att alla specialtecken behandlas korrekt.
- När kommandot körs framgångsrikt genereras ingen utdata. Men om det finns ett fel eller felkonfiguration kan du, beroende på din kontokonfiguration, få ett e-postmeddelande som innehåller kommandots utdata. För att undertrycka e-postmeddelanden när kommandot misslyckas, lägg till följande text i slutet av cron job-kommandot:
2>/dev/null
De flesta vill dock bli meddelade när ett cron-jobb misslyckas.
För information om hur du använder cPanel för att skapa ett cron-jobb, se den här artikeln.
Metod #2:Använd en konfigurationsfil för att lagra MySQL-inloggningsinformation
Alternativt kan du skapa en konfigurationsfil i din hemkatalog som lagrar MySQL-inloggningsinformation. Med den här metoden behöver du inte inkludera inloggningsinformation i dina cron-jobbkommandon. För att göra detta, följ dessa steg:
- Skapa en fil med namnet .my.cnf i ditt /home/ användarnamnskatalogen, ersätter användarnamnet med ditt kontoanvändarnamn. Se till att du inkluderar den ledande . i filnamnet.
- Kopiera och klistra in följande text i .my.cnf fil. Ersätt dbusername med databasanvändaren och ersätt dbpassword med databasanvändarens lösenord:
[client] user = dbusername password = "dbpassword" host = localhost
-
Skapa ett cron-jobb som kör följande kommando. Ersätt dbname med namnet på databasen som ska säkerhetskopieras och ersätt sökvägen med sökvägen för att lagra säkerhetskopian. Det här exemplet använder backup.sql för säkerhetskopians filnamn, men du kan använda vilket filnamn du vill:
mysqldump --routines dbname > /path/backup.sql
När kommandot körs framgångsrikt genereras ingen utdata. Men om det finns ett fel eller felkonfiguration kan du, beroende på din kontokonfiguration, få ett e-postmeddelande som innehåller kommandots utdata. För att undertrycka e-postmeddelanden när kommandot misslyckas, lägg till följande text i slutet av cron jobb-kommandot:
2>/dev/null
De flesta vill dock bli meddelade när ett cron-jobb misslyckas.
För information om hur du använder cPanel för att skapa ett cron-jobb, se den här artikeln.
Mer information
För mer information om mysqldump programmet, besök http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html.