Skocz do zawartości
Mateusz Sojda

Automatyczny backup na shared hostingu

Polecane posty

Witam!

 

Posiadam konto w firmie dhosting.pl, ich panel nie ma opcji automatycznego backupu, nie daja oni tez dostepu via ssh. Czy istnieje jakis sposob na automatyczna kopie zapasowa plikow i bazy na zewnetrzny serwer w takim wypadku?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Zewnętrzny backup na znakomitej większości (o ile nie na wszystkich) shared hostingów nie jest możliwy.

Chyba, że za coś takiego uznać przekopiowanie plików w oknie Total Commandera, co nie zawsze jest możliwe - zależy od tego w jaki sposób skonfigurowane będą oba serwery, a konkretnie ich protokół ftp.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jest to jak najbardziej możliwe.

Proszę skrypt napisany w bashu do wykonania takiego backupu:

klik

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Malu jesli nie ma wlotu na ssh to jak go odpali? Nawet jak podepnie to w jakis sposob pod cgi, moze miec duze ograniczenia ...

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Przepraszam mój błąd ;-)). Nie zauważyłem że ten skrypt działa w drugą stronę aniżeli "chcemy".

W takim razie albo musisz poszukać czegoś dla siebie albo odpowiednio zmodyfikować ten, który podałem.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

a aby czasami dhost nie robi backupu i twój backup nie jest już konieczny?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
a aby czasami dhost nie robi backupu i twój backup nie jest już konieczny?

Robi i to codziennie ;)

 

Matte miał na myśli inna sytuację. Jak wprowadzamy spore zmiany w skryptach czy w bazach, zawsze dobrze jest mieć pod ręką aktualną kopię by raz dwa odtworzyć "zepsute" pliki ;)

 

Co do baz danych w dhosting nie mam żadnych problemów z phpmyadminem i jest jeszcze fajny skrypt do tworzenia i odtwarzania dumpów ale nazwa wypadła mi z głowy ;)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Na podstawowych kontach hostingowych można użyć skryptu CGI:

 

  1. mysqldump do tymczasowego katalogu
  2. kopiujemy do tego katalogu także pliki które mają być zbackupowane
  3. nagłówek: Content-type: application/octet-stream
  4. tar zcf - <katalog-tymczasowy> (backup idzie na stdout)
  5. Koniecznie ograniczyć dostęp poprzez .htaccess !

Po stronie drugiego serwera (crontab):

 

  1. wget --user=... --password=... (...) -O backup.tgz

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Pod warunkiem, że na serwerze nie działa jakiś killerd procesów, które za długo się wykonują...

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Pod warunkiem, że na serwerze nie działa jakiś killerd procesów, które za długo się wykonują...
Na to też jest sposób. Można backup podzielić na dwie fazy:

 

  • CGI: przygotowanie pliku *.sql.gz
  • FTP: ściągnięcie pliku

Zakładam, że sam mysqldump zmieści się w 30 sekundach (przykładowe ograniczenia na czas wykonania skryptu). Transmisja FTP ze względu na ograniczone pasmo może trwać dłużej.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
na hostingu ziddio.pl jest to:)

Ale dinozaury wykopujecie ;)

 

 

Na dhostingu jest obecnie możliwość dostania konta SSH, więc spokojnie można tam to do crontaba wpisać.

 

Poza tym nie wiem, czy mysqldump + tar zmieści się w 30sek... A nawet jeśli się wykona, i do tempa gdzieś zapisze plik, to jak go przesłać na zdalny serwer? FTPem? Jeśli chcesz to via cgi robić, to przeć to trwa dłużej, niż stdout. A jeśli zdalnie wgetem, to jak rozpoznasz, czy skrypt wygenerował (już) poprawny backup?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

> Poza tym nie wiem, czy mysqldump + tar zmieści się w 30sek...

To zależy od wielkości bazy, ale zakładam, że ktoś kto korzysta z hostingu będzie operował na bazach < 100MB.

 

> A nawet jeśli się wykona, i do tempa gdzieś zapisze plik, to jak go przesłać na zdalny serwer? FTPem?

Tak.

 

> Jeśli chcesz to via cgi robić, to przeć to trwa dłużej, niż stdout.

Nie, cgi + suexec będzie działać tak samo jak skrypt uruchomiony przez SSH. To samu się tyczy czasu transmisji (z dokładnością do timeoutu nakładanego na skrypty CGI przez serwer WWW).

 

> A jeśli zdalnie wgetem, to jak rozpoznasz, czy skrypt wygenerował (już) poprawny backup?

Najprościej: odstęp 10 minut przed odpaleniem FTP get + suma MD5 też leżąca jako plik na FTP którą można zweryfikować po stronie serwera odbierającego backup. Mamy pewność, że dump nie został przerwany i że przetransmitowano cały plik.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Znalazłem bardzo ciekawy skrypt spełniający moje wymagania. Potrafi zrobić backup bazy danych, skompresować podane katalogi i wysłać wszystko przez ftp na zdalny serwer ;)

 

Link: http://sourceforge.net/projects/phpmybackup/

 

Nie mogę tego wyczytać, lecz czy to cudo jest w stanie podzielić utworzone archiwum na części tak, aby się ładnie na GMaila zmieściło? Co w ogóle sądzicie o takim rozwiązaniu?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
> Poza tym nie wiem, czy mysqldump + tar zmieści się w 30sek...

To zależy od wielkości bazy, ale zakładam, że ktoś kto korzysta z hostingu będzie operował na bazach < 100MB.

 

Bazy to bazy... zostają jeszcze główne pliki strony. O których w pierwszym poście była mowa.

 

 

> Jeśli chcesz to via cgi robić, to przeć to trwa dłużej, niż stdout.

Nie, cgi + suexec będzie działać tak samo jak skrypt uruchomiony przez SSH. To samu się tyczy czasu transmisji (z dokładnością do timeoutu nakładanego na skrypty CGI przez serwer WWW).

 

Stdout to w moim rozumieniu wyplucie przez skrypt CGI zawartości tara na stdout, a nie do pliku tymczasowego... a nie wykonywanie skryptu z crona.

 

 

> A jeśli zdalnie wgetem, to jak rozpoznasz, czy skrypt wygenerował (już) poprawny backup?

 

 

Najprościej: odstęp 10 minut przed odpaleniem FTP get + suma MD5 też leżąca jako plik na FTP którą można zweryfikować po stronie serwera odbierającego backup. Mamy pewność, że dump nie został przerwany i że przetransmitowano cały plik.

 

Ogólnie i tak niezła prowizorka (z braku laku...), ale dla mnie zbyt to zawodne było by. Jakieś zakłamanie w samym skrypcie CGI i powstanie ci niepełny tar, z poprawną do niego sumą md5 ;) który będzie widoczny jako poprawny...

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×