Strona 2 z 2

Odp: Skrypt robiący backup bazy MySQL

: 19 lut 2009, 20:20
autor: el.pescado
Możesz spróbować: http://pomoc.ovh.pl/CronNaWirtualnych choć nie wiem czy ta usługa jest dostępna na twoim koncie.

A jak to nie zadziała, możesz wykorzystać crona na swoim komputerze i ściągać backupy do siebie.

Odp: Skrypt robiący backup bazy MySQL

: 22 lut 2009, 21:02
autor: jacekalex
Witam

Kod: Zaznacz cały

mysqldump -h ADDRES_HOSTA -ssl -v --user=USER --password=PASSWORD \
 --add- drop-table -B BAZA_DANYCH > ZRZUT.sql 
U mnie to tak działa na home.pl.

Opcja -ssl oznacza połączenie szyfrowane SSL?TLS -v tryb verbose - gadatliwy - program pokazuje co robi - dobre do sprawdzenia - czy wszystko działa.

skrytp:

Kod: Zaznacz cały

#!/bin/bash
mysqldump -h ADDRES_HOSTA -ssl --user=USER --password=PASSWORD \
 --add- drop-table -B BAZA_DANYCH | gzip -9c >/home/user/backup-baza/`date +%y%m%d`.gz
Skrypt wrzuć do /etc/cron.daily

Jeśli ovh nie ma dostępu szyfrowanego do serwera mysql - usuń opcję ssl.
Dane dostępu do mysql'a sprawdź na stronie hostingu - powinny być w panelu admina.
Ewentualnie pomoc techniczna.

Np. na home.pl adres do mysql'a - wygląda tak: sql.user.home.pl.


To by było na tyle.

Odp: Skrypt robiący backup bazy MySQL

: 22 lut 2009, 21:12
autor: DNADesigNed
jacekalex pisze:To by było na tyle.
Taaak, pod warunkiem, że ISP wystawia bazę danych na zewnątrz. Przy dokładniejszym przeczytaniu wątku doszedłbyś do wniosku, że:
1. Te polecenia już zostały napisane.
2. ISP Szmitasa nie wystawia bazy na zewnątrz, więc z wykonywania takiego polecenia nici (o tym, że Szmitas chce to uruchamiać ze swojego kompa, a nie na serwerze też było napisane). ;)

Odp: Skrypt robiący backup bazy MySQL

: 24 lut 2009, 16:32
autor: jacekalex
Z moich informacji wynika - że na ovh.pl jest dostęp do mysql'a zdalny - jednak bez szyfrowania ssl.

Dlatego radziłbym wziąść opcję z dostępem przez ssh - jeśli potrzebny jest bezpieczny hosting.

Natomiast samo polecenie można odpalić w cronie - przez panel admina - niektóre hostingi (np. nazwa.pl) mają taką opcję.

Natomiast - jeśli nie ma dostępu zdalnego - zostaje tylko skrypt php -który odpalany przez np.

Kod: Zaznacz cały

#!/bin/bash
wget -S --spider http://adres-strony/folder/skrypt.php && 
sleep 30 && # czekamy - aż  zrzut będzie gotowy
wget -c http://adres-strony/folder/plik-zrzutu.bz2
daje w odpowiedzi zrzut bazy danych.

Wtedy na serwerze musi być skrypt php - robiący zrzut bazy - takiego skryptu szukałbym raczej na http://forum.php.pl/

Pozdrawiam

Odp: Skrypt robiący backup bazy MySQL

: 24 lut 2009, 16:54
autor: DNADesigNed
jacekalex pisze:Z moich informacji wynika - że na ovh.pl jest dostęp do mysql'a zdalny - jednak bez szyfrowania ssl.
Też mi w to trudno uwierzyć, ale próby uruchomienia poleceń na domyślnym porcie MySQL'a zakończyły się niepowodzeniem. Być może używają innego portu, kto wie? ;)
jacekalex pisze: Natomiast - jeśli nie ma dostępu zdalnego - zostaje tylko skrypt php -który odpalany przez np.

Kod: Zaznacz cały

#!/bin/bash
wget -S --spider http://adres-strony/folder/skrypt.php && 
sleep 30 && # czekamy - aż  zrzut będzie gotowy
wget -c http://adres-strony/folder/plik-zrzutu.bz2
daje w odpowiedzi zrzut bazy danych.
Tak na dobrą sprawę wystarczyło by wywołanie typu

Kod: Zaznacz cały

wget http://adres-strony/skrypt.php
który w nagłówkach HTTP określiłby nazwę i typ MIME pliku wyjściowego (w tym przypadku archiwum np. tar.gz), po czym rozpocząłby zrzucanie danych z bazy od razu, kompresując je w locie (np. przy użyciu, jeżeli dobrze pamiętam, funkcji PHP związanych z Zlib). Taki skrypt można zabezpieczyć odpowiednimi parametrami (np. parametrami GET lub POST albo HTTP Auth) przed niepożądanym dostępem.

Szczerze mówiąc takie rozwiązanie typu "pobierz plik 30 minut później, nawet jak nie będzie gotowy" to trochę takie dorabianie protezy według mnie. Wystarczy, że plik będzie tworzył się wolniej, niż prędkość ściągania, a przy wystarczająco dużym rozmiarze bazy nawet opóźnienie rzędu pół godziny nie wystarczy. Rezultat: niekompletny plik backup'u. Opcja "-c" tutaj nie pomoże, ponieważ skrypt wykonywany byłby raz na dobę, co przy założeniu nazwy opartej na bieżącej dacie zawsze będzie ściągać inny plik. Z kolei zmiana częstotliwości w cron'ie spowoduje wykonanie backup'u częściej niż raz dziennie, przy czym plik będzie za każdym razem (danego dnia) nadpisywany.