Sikkerhetskopier Apache web-katalog og database med denne enkle script

Jeg administrerer en rekke nettsteder. Og alle disse nettstedene trenger backup-løsninger. Siden de fleste av disse nettstedene bruke LAMP servere det bare var fornuftig å sette opp et backup system bruke tilgjengelig, inkludert open source verktøy. Det tok ikke lang tid å lage en solid backup system, og med hjelp av cron, automatisere at systemet slik at Apache dokument rot og nettsted databasene ble støttet opp med jevne mellomrom og uten brukermedvirkning.

Skriptet gjort bruk av følgende verktøy: dato, katt, tjære, mv, og rm. Det er alt. Scriptet vil lage sikkerhetskopier med datoen i filnavnet og deretter flytte backup til en sentral plassering. Uten videre adjø, la oss komme til manuset.

#! /bin /sh

TMP = "/tmp /"

#Format datoen i ÅR-MO-DY formatTODAY = `date + % F`

# Sjekk for å se om det er en lastbackup fil i /tmp, hvis ikke lage det, # hvis så deretter sette LAST lik $ TODAYif [-f /tmp /lastbackup]; thenLAST = `cat /tmp /lastbackup`elseLAST = $ TODAYfi

# Sett webkatalog backup navnet til followingWEB_FILENAME =" inc - "$ TODAY" -web.tar.gz "

# Set database backup navn til followingDB_FILENAME = "inc -" $ TODAY "-db.tar.gz"

# Dette tjære opp min webkatalog inn web.tar.gz tarball. /bin /tjære -czf $ TMP $ WEB_FILENAME --after-date = $ LAST /var /www /html

# Move nettet tilbake til backup katalogen /bin /mv $ TMP $ WEB_FILENAME /data

# Fjern web backup fil fra temp directorrm $ TMP $ WEB_FILENAME

# dette tjære opp min database katalogen til $ TODAY-db.tar.gz tarball. /bin /tjære -czf $ TMP $ DB_FILENAME --after-date = $ LAST /var /lib /mysql

# Flytt backup databasen til backup katalogen /bin /mv $ TMP $ DB_FILENAME /data

# Fjern web backup fil fra temp directoryrm $ TMP $ DB_FILENAME

Det jeg ønsket dette å gjøre er å lage daglige sikkerhetskopier og flytte backup til /datakatalogen på stasjonen huser serveren. Disse sikkerhetskopiene blir lagret i en måned. Etter måneden er ferdig har jeg en andre skript som sletter måneder backup før du kjører neste backup (så det er alltid en sikkerhetskopi å falle til). Hvordan jeg gjort bruk av dette skriptet er enkel. Jeg lagre skriptet (kalt backup.sh) i roten brukerkatalog og lage en andre script kalt rm_backups.sh som ser slik ut:

#! /bin /sh

rm /data /* gz

Med disse to filene på plass oppretter jeg to cron oppføringer. Den første cron oppføringen er for å kjøre backup.sh manus og ser slik ut:

0 23 * * * ~ /backup.sh

Den andre cron oppføringen er for å kjøre rm_backups.sh script og ser slik ut:.

0 20 1 * * ~ /rm_backups.sh

Begge de ovennevnte cron jobber er skapt som root bruker

Final Thoughts Anmeldelser

Naturligvis denne løsningen kan enkelt endres (ved hjelp av slike verktøy rsync) for å sette opp en ekstern backup-løsning. Hva bør være åpenbare er at det å skape et enkelt, fleksibelt server backup system på Linux er enkelt. Med hjelp av litt oppfinnsomhet, kan du lage din egen automatisert backup-tjeneste. Anmeldelser