Skrypt robiący backup bazy MySQL

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
Awatar użytkownika
el.pescado
Zakręcona Traszka
Zakręcona Traszka
Posty: 734
Rejestracja: 26 maja 2005, 11:43
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Skrypt robiący backup bazy MySQL

Post 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.
Awatar użytkownika
jacekalex
Gibki Gibbon
Gibki Gibbon
Posty: 4707
Rejestracja: 17 cze 2007, 02:54
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: MATE
Architektura: x86_64

Odp: Skrypt robiący backup bazy MySQL

Post 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.
Awatar użytkownika
DNADesigNed
Sędziwy Jeż
Sędziwy Jeż
Posty: 84
Rejestracja: 30 sie 2007, 17:01
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: LXDE
Architektura: x86
Kontakt:

Odp: Skrypt robiący backup bazy MySQL

Post 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). ;)
Pozdrawiam
Piotr "MoroS" Mrożek - http://dnadesign.pl/
Awatar użytkownika
jacekalex
Gibki Gibbon
Gibki Gibbon
Posty: 4707
Rejestracja: 17 cze 2007, 02:54
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: MATE
Architektura: x86_64

Odp: Skrypt robiący backup bazy MySQL

Post 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
Awatar użytkownika
DNADesigNed
Sędziwy Jeż
Sędziwy Jeż
Posty: 84
Rejestracja: 30 sie 2007, 17:01
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: LXDE
Architektura: x86
Kontakt:

Odp: Skrypt robiący backup bazy MySQL

Post 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.
Pozdrawiam
Piotr "MoroS" Mrożek - http://dnadesign.pl/
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 21 gości