Backup av web og database

Har du noe lurt å dele med oss? NB. Dette er ikke et support forum.

Backup av web og database

Innleggav theepan007 » fre 26.11.2004 15:25

Hei! Jeg kjører phpnuke på apache og mysql database på redhat. Jeg ønsker å ta backup av både websiden og databasen og sende det til en annen maskin/server hver natt. Er det noen som vet om en slike programmer, og hvordan det kan gjøres?

Takk på forhånd!
medlem i 233 måneder
 

Innleggav ak » fre 26.11.2004 23:46

Jeg gjør selv lignende ting med et enkelt script. Dette er en ren tekstfil som du gjøre eksekverbar ved å lagre den som "webbackup.sh" og bruke kommandoen

Kode: Merk alt
chown root:root webbackup.sh && chmod 700 webbackup.sh


Denne forutsetter at filene (for MySQL og Apache) ligger som i det følgende scriptet. Du må også ha en katalog under web-treet ditt som heter backup, og denne må inneholde en .htaccess fil som kun tillater autentiserte brukere å laste ned backup-filen (les mere på mod_auth siden på http://httpd.apache.org ).

Backup-filen kan lastes ned med f.eks. wget. Dersom du vil kjøre dette scriptet daglig legger du det til som en cron-jobb. For å pakke ut kopien lager du et nytt directory og kopierer filen dit. Deretter
Kode: Merk alt
tar -xjvpf backup.tbz2
og du kan da kopierer filene et annet sted eller på plass.

Kode: Merk alt
#!/bin/bash
# Stopp Apache og MySQL
/etc/init.d/apache2 stop
/etc/init.d/mysql stop

# Slett gammel backup
rm -f /var/www/localhost/htdocs/backup/backup.tbz2

# Ny backup, -j komprimerer med BZip2
tar -cjpf /tmp/backup.tbz2 /var/www/localhost/ /var/lib/mysql/

# Kopier file slik at den andre maskinen kan hente den.
cp /tmp/backup.tbz2 /var/www/localhost/htdocs/backup/backup.tbz2

# Start MySQL and Apache
/etc/init.d/mysql start
/etc/init.d/apache2 start

Administrator
Brukerens avatar
medlem i 237 måneder
 

Innleggav (m) » lør 27.11.2004 12:14

så dette backup-scriptet gjør at det blir en liten nede-tid?

går det ikke an å kjøre backup uten nedetid? bare lurer...
medlem i 232 måneder
 

Innleggav Fivel » lør 27.11.2004 14:15

En rask og enkel måte å ta backup av mysql-databaser er å dumpe hele basen som en sql-spørring:

Kode: Merk alt
mysqldump --host=[vertsmaskin] --complete-insert --add-drop-table --lock-tables --user=[dbbruker] --password=[passord] [database] > [db-backup.txt]



Dette kan også kjøres fra en fjern-pc såfremt rettighetene til databasen forøvrig er på plass. Selv tar jeg sikkerhetskopi av en database over til laptoppen min på denne måten.

Når det gjelder backup av www-katalogen, skulle det vel ikke være nødvendig å ta ned web-serveren?

-Five|

Brukerens avatar
medlem i 236 måneder
 

Innleggav ak » lør 27.11.2004 18:14

Nedetiden i Linux1.no sitt tilfelle er ca 2 sekunder. Har riktignok delt scriptet i to, MySQL/Apache stoppes bare mens MySQL databasen kopieres, ikke mens htdocs kopieres.

Med mysqldump trenger du ikke gjøre dette som Fivel nevner, men restore-tiden blir gjerne litt lenger og scriptet blir mere komplisert dersom du trenger å dumpe alle databaser (?).

Administrator
Brukerens avatar
medlem i 237 måneder
 

Takk

Innleggav theepan007 » lør 27.11.2004 19:55

Takk for tilbakemeldingen, jeg har fått det til! :P :P
medlem i 233 måneder
 


Returner til Tips og triks / Favoritter



Hvem er i Forumene

Registrerte brukere: Google [Bot]