Denne artikel beskriver, hvordan man opsætter et cron-job, der automatisk sikkerhedskopierer en MySQL-database til en fil med bestemte intervaller.
Automatisk databasesikkerhedskopiering ved hjælp af cron-jobs
Der er to måder at køre cron-job på, der sikkerhedskopierer en MySQL-database. Du kan enten inkludere MySQL-loginoplysninger i selve cron-job-kommandoen, eller du kan bruge en konfigurationsfil til at gemme MySQL-loginoplysningerne.
Metode #1:Inkluder MySQL-loginoplysninger i cron-job-kommandoen
Du kan køre planlagte sikkerhedskopier af en MySQL-database ved at oprette et cron-job, der kører følgende kommando:
/usr/bin/mysqldump --routines -u dbusername -p'dbpassword' dbname > ${HOME}/path/backup.sql
Erstat dbusername med databasebrugeren, dbpassword med databasebrugerens adgangskode, dbname med databasen, der skal sikkerhedskopieres, og sti med stien, hvor du vil gemme backupfilen. Dette eksempel bruger backup.sql for sikkerhedskopiens filnavn, men du kan bruge et hvilket som helst filnavn, du ønsker.
- De enkelte anførselstegn (') omkring adgangskoden sikrer, at eventuelle specialtegn behandles korrekt.
- Når kommandoen kører korrekt, genereres der ikke noget output. Men hvis der er en fejl eller forkert konfiguration, kan du, afhængigt af din kontokonfiguration, modtage en e-mail-meddelelse, der indeholder kommandooutputtet. For at undertrykke e-mail-meddelelser, når kommandoen mislykkes, skal du tilføje følgende tekst til slutningen af cron-job-kommandoen:
2>/dev/null
De fleste mennesker vil dog gerne have besked, når et cron-job mislykkes.
For information om, hvordan du bruger cPanel til at oprette et cron-job, se venligst denne artikel.
Metode #2:Brug en konfigurationsfil til at gemme MySQL-loginoplysninger
Alternativt kan du oprette en konfigurationsfil i dit hjemmebibliotek, der gemmer MySQL-loginoplysninger. Ved at bruge denne metode behøver du ikke at inkludere login-oplysninger i dine cron-job-kommandoer. For at gøre dette skal du følge disse trin:
- Opret en fil med navnet .my.cnf i dit /home/ brugernavn bibliotek, der erstatter brugernavn med dit kontobrugernavn. Sørg for at inkludere den førende . i filnavnet.
- Kopiér og indsæt følgende tekst i .my.cnf fil. Erstat dbusername med databasebrugeren og erstat dbpassword med databasebrugerens adgangskode:
[client] user = dbusername password = "dbpassword" host = localhost
-
Opret et cron-job, der kører følgende kommando. Erstat dbname med navnet på den database, der skal sikkerhedskopieres, og erstat stien med stien til at gemme sikkerhedskopieringsfilen. Dette eksempel bruger backup.sql for sikkerhedskopiens filnavn, men du kan bruge et hvilket som helst filnavn, du ønsker:
mysqldump --routines dbname > /path/backup.sql
Når kommandoen kører korrekt, genereres der ikke noget output. Men hvis der er en fejl eller forkert konfiguration, kan du, afhængigt af din kontokonfiguration, modtage en e-mail, der indeholder kommandoen. For at undertrykke e-mail-meddelelser, når kommandoen mislykkes, skal du tilføje følgende tekst til slutningen af cron-job-kommandoen:
2>/dev/null
De fleste mennesker vil dog gerne have besked, når et cron-job mislykkes.
For information om, hvordan du bruger cPanel til at oprette et cron-job, se venligst denne artikel.
Flere oplysninger
For mere information om mysqldump program, besøg venligst http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html.