[phpBB3] [Poradnik] Automatyczny backup (na adres email)

Pytania i prośby o pomoc. Ten dział przeznaczony jest dla Ciebie zarówno jeśli szukasz PBFa o konkretnej tematyce, jak i potrzebujesz pomocy ze stroną techniczną Twojego forum lub szukasz ludzi do prac nad własnym projektem.

Postprzez Yatsu » 30 sie 2014, o 02:57

Automatyczny backup (na adres email)


Ostatnie problemy na Hellgates oraz chwilowa i potencjalnie bardzo niebezpieczna niedyspozycja hostingu z którego obecnie korzystam skłoniły mnie do szybkiego zaimprowizowania modułu, który dbałby o to, żebym nigdy nie znalazł się w podobnej sytuacji. Z pustą, białą stroną i błędem 500 informującym mnie o skasowaniu mojej strony bez uprzedniego poinformowania mojej osoby. O świadomości utraty blisko miesiąca pracy i wkładu wszystkich moich graczy. Dla zwykłego forum może nie byłby to wielki cios, jednak kiedy coś takiego spotka PBF managerski, gdzie każda cyferka jest istotna, a każdy dzień rozgrywki jest niezwykle dla forum cenny, Administrator myśli tylko o tym, jak poinformować graczy, że w obliczu katastrofy opuściły go chęci do pracy...

Co osiągnięcie po ukończeniu tego krótkiego poradnika? Skrypt, który bez waszej ingerencji, co 24h o ustalonej porze będzie zapisywał bazę danych waszego forum, a następnie przesyłał na wskazany przez was adres email. W sytuacji kryzysowej wystarczy jedynie odwiedzić maila i wybrać najnowszy backup.

Dlaczego wysyłamy backup na adres email? Żeby nie stracić forum, gdy posypie się również dostęp do FTP.


Pobranie niezbędnych skryptów.

Potrzebujesz :

- Hostingu z dostępem do mysql oraz ftp.
! Niektóre hostingi z powodów antyspamowych blokują wysyłanie maili !
- Nazwy użytkownika, hasła oraz adresu hosta Twojej bazy danych.
- Konta email, klienta FTP (FileZilla), Notepad++
- Od 10 do 30 minut wolnego czasu.

- Auto Backup v1.02 PL
http://phpbb3.pl/download/file.php?id=1092&sid=5ef867a37f4d69392f8380714401dc5f lub http://www.mediafire.com/download/beduiin3lzi6k2d/auto_backup_1_0_2_1.zip

- class.phpmailer.php, class.smtp.php oraz backup.php
http://www.mediafire.com/download/d7zl8sgckn2ak7s/skrypty.zip



Instalacja Auto Backup v1.02 PL.

Obrazek

Pobieramy plik i wypakowujemy jego zawartość, a następnie dowolną przeglądarką otwieramy plik: install_mod.XML Po otworzeniu pliku pokaże wam się instrukcja w języku angielskim odnośnie instalacji moda.

Obrazek


Zjeżdżamy kilkanaście linijek niżej do nagłówka Files to edit, gdzie autor moda opisuje jakie pliki musimy edytować, aby mod działał poprawnie. Pobieramy wskazane przez autora pliki: cron.php - z głównego katalogu forum, oraz functions.php z katalogu includes. Do pobrania plików korzystamy z dowolnego klienta FTP. Ja skorzystałem z FileZilli.

Obrazek

Szczęśliwie dla nas mamy tylko dwa pliki, które należy edytować. Edytujemy pierwszy z nich:

Obrazek


cron.php

Otwieramy pobrany plik za pomocą Notepad++ korzystając ze skrótu Ctrl+F otwieramy okienko wyszukiwarki, wklejamy frazę garbage_collection();

Obrazek

Znajdujemy pokazany poniżej fragment kodu:

}

// Unloading cache and closing db after having done the dirty work.
unlock_cron();
garbage_collection();

exit;


tuż przed nim wklejamy :

Kod: Zaznacz cały
   
case 'auto_backup':
      
      if ((time() - $config['auto_backup_gc'] * 86400) <= $config['auto_backup_last_gc'])
      {
         break;
      }

      include($phpbb_root_path . 'includes/auto_backup.' . $phpEx);

      auto_backup();

   break;


Całość po wklejeniu powinna się prezentować tak jak na powyższym zdjęciu (z opisem wyszukiwania frazy garbage_collection();).


includes/functions.php

Obrazek

Tym razem wyszukujemy frazę $cron_type = 'tidy_sessions';. Następnie ponad:

$cron_type = 'tidy_sessions';
}


...wklejamy:

Kod: Zaznacz cały
      else if (isset($config['auto_backup_enable']) && $config['auto_backup_enable'] && (($time_now - $config['auto_backup_gc'] * 86400) > $config['auto_backup_last_gc']))
      {
         $cron_type = 'auto_backup';
      }


Edytowany fragment kodu powinien prezentować się tak jak jest to pokazane na poniższym zdjęciu:

Obrazek


auto_backup.php

Wracamy do katalogu z pobranym modem, otwieramy folder root/includes i edytujemy plik auto_backup.php, w nim znajdujemy:

$name = 'backup_' . $time . '_' . unique_id();


i zamieniamy na:

Kod: Zaznacz cały
$name = 'backup';


Skopiowanie pozostałych plików

Obrazek


Tym razem zaglądamy do katalogu root (oznaczenie dla katalogu głównego forum) pobranego moda. Całą zawartość folderu kopiujemy do głównego katalogu naszego forum, oraz przegrywamy edytowane i następnie zapisane po edycji pliki cron.php oraz functions.php do odpowiednich folderów (cron.php - folder główny, functions.php - katalog includes).

Obrazek

Instalacja Auto Backup v1.02 PL

Obrazek

Zgodnie z powyższą instrukcją otwieramy link: http://adres_twojego_forum.pl/install_auto_backup.php, a następnie wykorzystany plik instalacyjny usuwamy. Teraz logujemy się na forum do panelu administratora i konfigurujemy moda:

Obrazek

Obrazek

Na koniec zaglądamy do folderu store w katalogu głównym twojego forum i kasujemy plik zabezpieczający .htaccess jego obecność uniemożliwiłaby nam przesłanie backupu, przy użyciu crona mailem. Oraz kasujemy zawartość folderu cache poza plikiem .htaccess oraz katalogiem adm.



Wysyłanie backupów mailem

Pobieramy drugą paczkę skryptów, otwieramy folder store w głównym katalogu forum, a do niego przegrywamy pobrane skrypty za wyjątkiem pliku backup.php, który uprzednio edytujemy zgodnie z opisem zawartości (na twój_mail@gmail.com będą wysyłane backupy):

Obrazek


EasyCron

Obrazek

EasyCron zapewni wywoływanie skryptu o określonej godzinie, każdego dnia bez udziału Twojej osoby. Innymi słowy po ukończeniu poradnika możesz zapomnieć o wykonywaniu backupów, a w sytuacji krytycznej odwiedzisz jedynie swoją skrzynkę email.

Obrazek

Rejestrujemy się, a następnie logujemy się do serwisu...

Obrazek

Ustawiamy nowe zadanie do wykonania i... gotowe! Hostingi takie jak ct8.pl udostepniają darmowego CRONa, na którym można ustawić konkretną godzinę. Dla przykładu mój backup jest tworzony o godzinie 23:30, a wysyłany o 23:55.

Na koniec polecam ustawienie CRONa na np. 15min, a w panelu ustawić nieco bliższą datę, aby sprawdzić czy wszystko działa poprawnie.


Obrazek
Galactik-Rev PBF, Hybryda gry pbf i via www o tematyce managerskiej w świecie Galactik Football,
Avatar użytkownika
Yatsu
 
Posty: 164
Dołączył(a): 3 wrz 2012, o 21:47
Numer GG: 9272134

Postprzez Otorek » 30 sie 2014, o 07:49

Jest tylko jeden problem - wielkość backup-u. Wysyłka mailem 200 mb bazy musi zakończyć się klęską (gmail ma ograniczenie do 25 mb chyba) potrzebne byłoby rozwiązanie wysyłające backup na inny serwer/chmurkę lub coś w tym rodzaju.
Obrazek
Avatar użytkownika
Otorek
 
Posty: 243
Dołączył(a): 22 lip 2012, o 14:55
Lokalizacja: Wrocław
Numer GG: 447116

Postprzez Mortarion » 30 sie 2014, o 08:09

Fajna rzecz, przyda się. Sam robię kopię ręcznie, jako codzienny rytuał przed snem :) można to też zedytować i na portal wrzucić jako normalny artykuł, coby więcej ludzi zauważyło.

gmail ma ograniczenie do 25 mb chyba

A dysk google? Da się zrobić, by wysyłało kopię na googledisk czy to nie jest możliwe?
Obrazek
Avatar użytkownika
Mortarion
Administrator
 
Posty: 1388
Dołączył(a): 13 sie 2012, o 07:31
Lokalizacja: R'lyeh

Postprzez Yatsu » 30 sie 2014, o 09:19

Ten problem dotyka chyba jedynie Mgławicy. Weźcie też pod uwagę, że korzystamy z kompresji gzip, więc plik zmniejsza się spokojnie kilka ładnych razy. Ale fakt, faktem, że to może być problem, dlatego później opisze jak to zrobić z Google API.

W sumie wystarczy jedynie nakładka na backup.php, a pliki class nie będą potrzebne, więc z tego opisu można póki co korzystać.
Galactik-Rev PBF, Hybryda gry pbf i via www o tematyce managerskiej w świecie Galactik Football,
Avatar użytkownika
Yatsu
 
Posty: 164
Dołączył(a): 3 wrz 2012, o 21:47
Numer GG: 9272134

Postprzez Otorek » 30 sie 2014, o 10:33

Myślę, że spokojnie można to przerobić na arta poradnikowego, o ile autor nie ma nic przeciwko :)
Obrazek
Avatar użytkownika
Otorek
 
Posty: 243
Dołączył(a): 22 lip 2012, o 14:55
Lokalizacja: Wrocław
Numer GG: 447116

Postprzez Kelan » 30 sie 2014, o 12:17

Bardzo chętnie bym takowy artykuł na portal wrzucił. Wielu osobom na pewno by się rzecz przydała, a na portalu zawsze mimo wszystko jest bardziej dostępne. Yatsu miałbyś coś przeciw zrobieniu z tego tekstu artykułu na portal?
Kelan
 

Postprzez Yatsu » 30 sie 2014, o 12:53

Jasne, że nie mam nic przeciwko.
Galactik-Rev PBF, Hybryda gry pbf i via www o tematyce managerskiej w świecie Galactik Football,
Avatar użytkownika
Yatsu
 
Posty: 164
Dołączył(a): 3 wrz 2012, o 21:47
Numer GG: 9272134

Postprzez Morion » 31 sie 2014, o 09:32

Taka sprawa, tu trzeba trzymać cache a te zdarza mi sie czyścić dosyć często, da się to jakoś pominąć?
Avatar użytkownika
Morion
 
Posty: 470
Dołączył(a): 8 wrz 2012, o 15:23
Numer GG: 11657618

Postprzez Yatsu » 31 sie 2014, o 11:07

Gdzie masz napisane, że trzeba trzymać cache? Wręcz jest napisane, żeby po instalacji je skasować.
Galactik-Rev PBF, Hybryda gry pbf i via www o tematyce managerskiej w świecie Galactik Football,
Avatar użytkownika
Yatsu
 
Posty: 164
Dołączył(a): 3 wrz 2012, o 21:47
Numer GG: 9272134

Postprzez Morion » 31 sie 2014, o 14:34

"Oraz kasujemy zawartość folderu cache poza plikiem .htaccess oraz katalogiem adm."
- troche zawartości trzymać musimy :P
Avatar użytkownika
Morion
 
Posty: 470
Dołączył(a): 8 wrz 2012, o 15:23
Numer GG: 11657618

Postprzez Yatsu » 31 sie 2014, o 17:07

Tych folderów nie kasuje z zasady, bo są nieistotne. Chcesz, to je usuń jeśli tak normalnie postępujesz. To nie ma żadnego związku z instalacją tej modyfikacji. Poza tym czytaj dokładnie. Jest napisane zaledwie co masz usunąć, nie jest napisane, że pozostałych również nie możesz skasować. It's up to you.
Galactik-Rev PBF, Hybryda gry pbf i via www o tematyce managerskiej w świecie Galactik Football,
Avatar użytkownika
Yatsu
 
Posty: 164
Dołączył(a): 3 wrz 2012, o 21:47
Numer GG: 9272134

Postprzez hi0b » 31 sie 2014, o 22:52

Wszystko fajnie :D tylko mówisz ludziom - hej wystawcie na świat plik który każdy może uruchomić i który wysle wam backup :) do tego wystawcie też na świat ten backup ^^ a) co jeli jakiś wstręty cham zacznie odpalać backup w skrypcie 100 razy na sekundę i serwer pójdzie spać i jeszcze Ci maila zbanują :P b) nie chciałbym żeby moją bazę każdy mógł ściągnąć i mieć dostęp do tabeli z hasłami... więc może warto coś zmienić w koncepcji, no i do licha nie można kazać ludziom kasować htaccesa, wystarczy umieć go obsługiwać. Więc popraw swój skrypt.
Obrazek
Pomagam tylko na forum i raczej w weekendy.
Avatar użytkownika
hi0b
 
Posty: 97
Dołączył(a): 25 sie 2012, o 19:58
Lokalizacja: Chorzów
Numer GG: 0

Postprzez Yatsu » 1 wrz 2014, o 00:27

Wystarczy użyć mózgu i zmienić sobie nazwy plików jeśli ma się stany lękowe o ataki hackerskie wymierzone w konkretne pbfy...

W pełni świadomie skasowałem .htaccess i enjoy z próbą zrobienia tego na moim forum. Jeśli jednak ktoś boi się spiskowców zgadujących nazwy plików:


1. Przesyłamy do /store plik .htaccess:
Kod: Zaznacz cały
<Files *>
   order allow,deny
   deny from all
   allow from 127.0.0.1
</Files>


2. Przerzucamy z /store pliki class.phpmailer.php class.smtp.php oraz backup.php.

3. W pliku backup.php edytujemy jedną linię z $mail->AddAttachment do następującej postaci :

Kod: Zaznacz cały
$mail->AddAttachment("store/nazwa_backupu.sql.gz", "nazwa_backupu.sql.gz");


4. Zmieniamy nazwę pliku backup.php np. na 91162629d258a876ee994e9233b2ad87 czy cokolwiek innego na co nie wpadnie cracker-amator-pbf oraz podpinamy to pod easycron.com, czy dowolnego innego crona.
Galactik-Rev PBF, Hybryda gry pbf i via www o tematyce managerskiej w świecie Galactik Football,
Avatar użytkownika
Yatsu
 
Posty: 164
Dołączył(a): 3 wrz 2012, o 21:47
Numer GG: 9272134

Postprzez hi0b » 1 wrz 2014, o 09:46

Wystarczy użyć mózgu i zmienić sobie nazwy plików jeśli ma się stany lękowe o ataki hackerskie wymierzone w konkretne pbfy...


Tak żałosnej wymówki się nie spodziewałem. Nie zrobiłeś tutka raczej dla mnie, tylko dla ludzi którzy nie mają o tym pojęcia, więc warto wziąć pod uwagę, że zrobią jeden do jednego co napisałeś. Skoro tak to trzeba jednak chyba pomyśleć o tym o czym oni nie mogą, bo nie mają takiej wiedzy, a nie patrzeć z góry i mówić o używaniu mózgu.

W pełni świadomie skasowałem .htaccess i enjoy z próbą zrobienia tego na moim forum. Jeśli jednak ktoś boi się spiskowców zgadujących nazwy plików:


Żałość.
Obrazek
Pomagam tylko na forum i raczej w weekendy.
Avatar użytkownika
hi0b
 
Posty: 97
Dołączył(a): 25 sie 2012, o 19:58
Lokalizacja: Chorzów
Numer GG: 0


Powrót do Pytania/Pomoc

cron