paź 032008

Backup serwera www

Jakiś czas temu stanąłem przed problemem tworzenia samodzielnych kopii własnego konta na wykupionych serwerze. Oczywiście usługodawcy zapewniają automatyczne tworzenie takich backupów, ale
1. przezorny zawsze zabezpieczony
2. niejednokrotnie czytałem żale internautów że po awarii dysków okazywało się że serwerownia nie ma aktualnych kopii lub również je utraciła

Głównym założeniem było przechowywanie w miarę aktualnych danych na dysku lokalnym zawartości serwera.

Ponieważ nie mam serwera dedykowanego, a serwisy utrzymuję na zwykłym hostingu współdzielonym, zwykłe panele nie udostępniają takich funkcjonalności. Na szczęście w firmie Progreso dostaje się dostęp do shella, co pozwala uruchamiać programy bezpośrednio na serwerze.

Początkowo robiłem pełną kopię całego konta zipując wszystko do jednego pliku (co niestety zajmowało kilkaset MB) i kopiowałem na dysk lokalny. Plik który tworzy pełną kopię wygląda następująco (nazwałem go tool_backup_full.sh):

#!/bin/bash
mkdir backupy
bdata=`(date +%Y-%m-%d)`
mkdir backupy/$bdata
zip -r -1 backupy/$bdata/backup_full_$(date +%Y-%m-%d--%H-%M) public_html

Rozwiązanie to ma tę wadę, że za każdym razem tworzy pełną kopię, co w moim przypadku oznaczało ponad 500MB które później musiałem kopiować lokalnie. Dlatego udało mi się napisać skrypt, który będzie robił kopię przyrostową. Po dodaniu tego skryptu do crona okazało się, że dzienny przyrostowy backup zajmuje nie więcej jak kilka MB.

A skrypt który nazwałem tool_backup_incremental.sh wygląda następująco:

#!/bin/bash
mkdir backupy
bdata=`(date +%Y-%m-%d)`
bdata2=`(date +%m%d%Y)`
mkdir backupy/$bdata
if [ -e backupy/last-www-backup.txt ]
then
data_z_pliku=`cat backupy/last-www-backup.txt`
zip -r -1 -t $data_z_pliku backupy/$bdata/backup_incremental_$(date +%Y-%m-%d--%H-%M) public_html
else
echo "Nie masz pliku z backupem"
fi
echo $bdata2 > backupy/last-www-backup.txt

Plik last-www-backup.txt zawiera przykładowo
08062008
czyli datę ostatniej kopii.

Innym rozwiązaniem jest zastosowanie rsync - programu do synchronizacji, ale przeznaczony jest on do linkusa, a ja na codzień pracuję na WIndowsa XP. Ewentualnie można próbować wykorzystać jeden z rozmaitych programów do tworzenia kopii pod Windows, ale mi nie udało się znaleźć takiego, który dobrze zrobi backup przyrostowy z FTP.

Problem jednak pozostaje w przypadku serwerów bez dostępu do shella czyli w zdecydowanej większości. Jeśli uda mi się znaleźć na to rozwiązanie, również napiszę o tym.

Kategoria: E-commerce 1 komentarz
One Response to Backup serwera www
  1. [...] serwera www c.d. Pisałem poprzednio o wykonywaniu kopii plików na serwerze współdzielonym. Rozwiąz... skaruz.com/2008/10/backup-serwera-www-cd

Dodaj komentarz

Your email address will not be published. Please enter your name, email and a comment.