Kopia zapasowa to jeden z fundamentów bezpieczeństwa. Dotyczy to zarówno szkiców pracy magisterskiej, ważnych zdjęć rodzinnych jak i... strony internetowej. Z artykułu dowiesz się jak wykonać kompletną kopię zapasową WordPressa w całkowicie automatyczny sposób.
Dlaczego warto wykonywać kopie zapasowe?
Kopia zapasowa, w przeciwieństwie do innych typów zabezpieczeń, nie ochroni przed włamaniem, nieumyślnym skasowaniem zawartości, spaleniem dysku w serwerowni czy innym Armagedonem. Okaże się ona jednak bezcenna w przypadku wystąpienia podobnego kataklizmu – to właśnie dzięki niej będziesz w stanie szybko i sprawnie postawić swojego WordPressa na nogi.
Żeby kopia bezpieczeństwa zdała egzamin powinna być wykonywana regularnie. Najlepiej bez naszego udziału czyli automagicznie.
Jak ustawić automatyczne tworzenie kopii zapasowej?
Oczywiście nie obędzie się bez specjalnej wtyczki. W oficjalnym katalogu jest ich na pęczki ale ja szczególnie cenię sobie BackWPup za prostą obsługę i tuzin przydatnych funkcji. Kawy wprawdzie jeszcze robić nie potrafi, ale i tak jest dobrze.
Zalety wtyczki BackWPup:
Warto zwrócić uwagę na następujące jej cechy:
- ręczne i zaplanowane uruchamianie procesu tworzenia kopii,
- swobodny wybór tabel z bazy danych,
- swobodny wybór katalogów,
- ustawianie ilości przechowywanych kopii zapasowych,
- możliwość wykonania całościowej (pliki i baza) lub tylko częściowej kopii,
- wysyłanie e-maila w przypadku wystąpienia błędów,
- możliwość przełączenia na zwykłego crona,
- możliwość wysyłania e-maili z serwera SMTP.
Ponadto, przygotowana kopia zapasowa może być:
- umieszczona w specjalnym katalogu na tym samym serwerze,
- wgrana na inny serwer,
- wgrana na Dropboxa, SugarSync, Amazon S3, Microsoft Azure lub Rackspace Cloud,
- wysłana na podany adres e-mail.
Uff.. sporo tego, prawda? Sprawdźmy teraz jak wtyczka spisuje się w akcji.
Korzystanie z wtyczki BackWPup:
Ustawieniami kopii zapasowych możesz zarządzać w zakładce „Narzędzia / BackWPup”, która pojawi się po instalacji wspomnianej wtyczki. Znajdziesz tam podział na dodatkowe sekcje takie jak:
- Jobs:
Z tego miejsca możesz zarządzać zadaniami. Oczywiście tuż po instalacji lista jest pusta. Powyższy zrzut ekranowy przedstawia dwa zadania, które utworzyłem na własne potrzeby. Pierwsze to pełna kopia zapasowa, które uruchamiam ręcznie w razie potrzeby. Drugie to automatyczna kopia bazy danych, które wykonuje się codziennie o 3 nad ranem.
- Logs:
Zakładka „Logs” zawiera z kolei informacje dotyczące każdej wykonanej wcześniej kopii – rozmiar, czas tworzenia i czy została ukończona z sukcesem czy może przerwana z powodu napotkania na błędy. Każdy taki log zawiera jeszcze bardziej szczegółowe informacje (np. na czym polegały ewentualne komplikacje).
- Backups:
Trzecia sekcja umożliwia zarządzanie tymi kopiami, które zostały wgrane na ten sam serwer.
- Tools:
„Tools” zawiera dwa przydatne narzędzia. Pierwsze (Database restore) służy do przywracania kopii zapasowej bazy danych (trzeba ją wcześniej umieścić w katalogu głównym WordPressa). Drugie (Import Jobs settings) umożliwia import zadań (zadanie można wyeksportować w sekcji „Jobs”) co jest niezwykle przydatne przy prowadzeniu wielu stron.
- Settings:
W „Settings” możesz wybrać sposób wysyłania maili („Send Mail”). Możesz tutaj także określić szczegóły przechowywania logów („Logs”), zamienić WordPressowego crona na Unixowy („Disable WP-Cron”) oraz określić katalog roboczy („Temp Folder”).
Aby dodać nowe zadanie należy przejść do zakładki „Jobs” i kliknąć na przycisk „Add New”, który znajduje się na górze, tuż obok napisu „BackWPup”. Twoim oczom ukaże się wtedy prawdziwe monstrum, którego zrzut ekranowy musiałem podzielić na trzy części:
- część pierwsza:
- Databse Jobs – tabele z bazy danych mają być wykluczone,
- File Backup – katalogi mają być wykluczone,
- Backup to Directory – katalog, w którym będą przechowywane wykonane kopie,
- Job Type – zakresu kopii,
- Job Schedule – regularne i automatyczne tworzenie kopii,
- Backup File – nazwy tworzonych kopii oraz rodzaj kompresji,
- Send log – szczegóły wysyłania logów.
- część druga:
- Backup to FTP Server – wgrywanie kopii na zewnętrzny serwer FTP,
- Backup to Amazon S3 i Backup to Microsoft Azure (Blob) – wgrywanie kopii na konto w danej usłudze.
- część trzecia:
- Backup to Rackspace Cloud, Backup to Dropbox i Backup to SugarSyns – wgrywanie kopii na konto w danej usłudze,
- Backup to E-mail – przesyłanie kopii pod wskazany adres e-mail.
Po wpisaniu nazwy zadania i ustawieniu potrzebnych opcji wystarczy kliknąć na przycisk „Save Changes” i voila! Każde zadanie można uruchomić ręcznie – wystarczy przejść do sekcji „Jobs” i kliknąć na odnośnik „Run now”.
Kiedy tworzyć kopię zapasową?
Każda strona jest inna. Częstotliwość wykonywania kopii powinna być wypadkową popularności, wielkości i tego jak często dodawane są nowe treści (wpisy, strony, komentarze). Najważniejsza ze wszystkich rzeczy jest baza danych, powinna ona być więc zabezpieczana dużo częściej niż reszta.
Optymalnym rozwiązaniem wydaje się wykonywanie kopii bazy danych raz dziennie a całościowej raz na tydzień. Warto też łączyć metody (kopie możesz trzymać zarówno na serwerze, na swoim koncie na Dropboxie i jednocześnie wysyłać je na maila).
Kopię zapasową trzeba koniecznie (bez żadnych ale!) wykonać przed:
- każdą aktualizacją WordPressa (i dużych wtyczek typu WPML),
- zleceniem wprowadzenia zmian innej osobie lub firmie,
- dłuższą nieobecnością,
- zmianą serwera,
- uruchamianiem wtyczek i motywów wątpliwego pochodzenia.
Komentarze
Ja mam własny sposób na backup WordPressa – pakowanie całego katalogu + dump bazy i to leci w bezpieczne miejsce. No, ale kto powiedział, że programiści lubią sobie ułatwiać życie. ;]
odpowiedzDobra, a teraz przyznawać się kto robi kopię przed każdą aktualizacją WordPressa :)
odpowiedzBackup przed instalacją nowego WordPressa? A gdzie ta nutka adrenaliny? :D
odpowiedzNa początku nie robiłem, ale gdzieś tak od momentu, kiedy faktycznie liczba odwiedzin zaczęła być sensowna, a na blogu było już z kilkadziesiąt wpisów, pomyślałem sobie, że jedno odpalenie skryptu mnie nie zbawi, a może ocalić istnienie instalacji WordPressa, którą przywracałbym o wiele dłużej. ;]
odpowiedzHeh, kolejny dobry artykuł i ciekawie opisana funkcjonalność. Dla klientów robię najczęściej backupy ręcznie żeby mieć 100% pewność, a dla siebie już dawno nie robiłem – taka smutna prawda :)
odpowiedzPomyślałem sobie, że dziś instaluję wtyczkę i ustawiam back’upy. Drugie co sobie pomyślałem, że dziś pewnie chwile zanim to zrobię nastanie armagiedon i będzie za poźno… ; ) No ale dzięki za ten wpis bo z pewnością się przyda ta wtyczka i ustawienie back’upów z CRONa.
odpowiedzJa od jakiegoś czasu korzystam z http://pluginbuddy.com/purchase/backupbuddy/ ale ma problemy z największymi blogami, gdzie wagi plików i bazy przekraczają 400MB. Czy tę swoją sprawdzałeś na takich „cięższych” serwisach?
odpowiedzZależy od hostingu. Są lepsze i gorsze i przekłada się to na podobne problemy.
odpowiedzChodzi mi bardziej o to jak wykonywany jest ten backup. Większość scharedów ma limit czasu wykonywania się skryptu i jestem ciekaw jak konkretnie ta wtyczka to rozwiązuje.
odpowiedzZ tego za zauważyłem to ta wtyczka nie stosuje żadnych magicznych trików i przy przekroczeniu czasu wykonywania najnormalniej się wywala.
odpowiedzSzkoda :/
odpowiedzOd momentu publikacji artykułu wtyczka została parę razy zaktualizowana i jest teraz jeszcze lepsza. Nie wiem jak u Was ale ja już nie mam żadnych problemów z tworzeniem naprawdę dużych kopii.
odpowiedzPrawda jest niestety taka, że większość z nas dopiero zrobi swój pierwszy backup. ;)
odpowiedzDzięki Szymonie, wtyczka zaiste jest godna uwagi. Stanowi doskonałą alternatywę zautomatyzowanych backupów jak się nie ma odpowiedniego poziomu dostępu (czyli np. do DirectAdmina na poziomie admina). Dla potomnych dodam, że działa jak marzenie na najprostszym pakiecie shared-hostingu w linuxpl :)
odpowiedzNiestety brakuje mi w nim jednej funkcji…
ja korzystam z chmury (SimpleStorage – swoją drogą mógłbym o nim swój artykuł i video opublikować u Ciebie), która wysyłkę plików ma przez https a nie FTP i muszę robić kopie na serwerze innym tej samej firmy, ale w innej lokalizacji , a co do zaplanowania kopii – z racji moich doświadczeń robię ją co 24h bo w katalogu gdzie mam WordPress’a mam też inne pliki
P.S.
odpowiedzWidzę tylko połowę przycisku lubie to :)
Magiczny przycisk jest na razie widoczny tylko dla rozdzielczości +1024 :D.
odpowiedzPrzyznam, że wtyczka jest imponująca. Backup bazy, plików, całość zautomatyzowana, integracja z Dropboxem – wow! Do tej pory używałem WP-DB-Backup, ale dziś po pierwszych testach BackWpUp, zaczynam wdrażać ją na moich WordPressach. Dzięki za info!
odpowiedzA u mnie niestety na shared hostingu (linuxpl.com) wtyczka przestała działać – zawiesza się na etapie tworzenia archiwum (niezależnie od jego rodzaju) i wisi do czasu anulowania zadania ręcznie lub przez jego kolejną zaplanowaną instancję.
Aktualnie sprawdzamy, co może być przyczyną. Ktoś miał może podobną przypadłość?
odpowiedzA próbowałeś ostatnio? Od paru ostatnich wersji działa to dużo lepiej i ja sam nie natrafiam już na podobne problemy.
odpowiedzW niektórych moich blogach wtyczka zatrzymuje się na kroku „Upload to DropBox now started…”. Zauważyłem, że dzieje się to zawsze w przypadku blogów, które zajmują powyżej 50 MB bez względu na wybrane foldery. W przypadku tych poniżej 50 MB – zatrzymuje się jeśli wybierzemy foldery wp-admin i wp-includes. Po ich odznaczeniu wszystko wysyła się bezproblemowo.
odpowiedzJa na Dropboxa przerzucam tylko archiwum z bazą danych a jeśli już mam potrzebę wykonania kopii całej strony to wtedy ściągam ją bezpośrednio z serwera na komputer.
odpowiedzZanim odpisałeś na mój komentarz stwierdziłem, że takie właśnie rozwiązanie zastosuję u siebie. Dzięki wielkie za polecenie wtyczki. Pozdrawiam.
odpowiedzProszę bardzo i powodzenia w rozwijaniu swojej strony.
odpowiedzWtyczka obowiązkowa dla każdego użytkownika wordpressa. Od razu przypomniał mi się kawał a propo backup-ów: Ludzie dzielą się na tych, którzy robią backup-y i tych, którzy będą robić backkup-y :)
odpowiedzŚwietna wtyczka. Najbardziej cieszy fakt, że prawie wszystko dzieje się automatycznie co pozwala zaoszczędzić mnóstwo czasu.
odpowiedzBackup to jedno, ale ciekaw jestem, czy ktoś próbował odzyskać, testować, czy wykonany w ten sposób backup uratuje życie :)
PS
odpowiedzPrzypominam sobie księgowość pewnej firmy, która chwaliła się jaki to nie nowoczesny system mają, że codziennie backupują, a gdy przyszło co do czego, to okazało się, że kopii, pliku nie można było odczytać :)
Nie trzeba testować. Ja robię backupy co 7 dni, wypakowuję je i widzę, że mogę nawet wrzucić to przez FTP gdyby plugin nie czytał pliku. A wczytać bazę danych to już nie ma żadnych problemów :)
odpowiedzbardzo dobry artykuł, napewno się przyda :)
odpowiedzCóż, ja ustawiłem by mi przysłał samą bazę danych na email, i wywala takie błędy:
odpowiedzKtoś wie dlaczego? Hosting iq.pl
Sprawdziłeś czy przypadkiem nie kończy Ci się dostępne miejsce na serwerze?
odpowiedzOczywiście :) mam dostępne 3,5Gb.
Ogólnie bywają jakieś problemy z funkcją filesize() w tej wtyczce, możliwe że to kwestia hostingu. A powszechnie wiadomo, że iq.pl jest dość rygorystyczne w kwestii zabezpieczeń.
Później spróbowałem zrobić kopie, również samej bazy danych, do pliku na serwerze. Baza ma raptem może 500kb w formie nieskompresowanej.
odpowiedzKilka razy wywalało błąd związany z funkcją filesize(). W pewnym momencie zrobiło kopię i utworzyło plik. Muszę się temu szerzej przyjrzeć.
Tak jakby skrypt nie potrafił uzyskać informacji o wielkości pliku i na tym się wywalał.
Ja trzymam w Global Virtual Opportu – idealny na kopie zapasowe bo tani, megabezpieczny i bez awaryjny pozatym bez limitu (link pod nickiem) a pozatym masz tam więcej niż hosting – poczytaj stronkę weź sobie triala za aż dolca i spróbuj :)
odpowiedzSprawdziłeś prawa dostępu do tego katalogu? Być może /tmp jest tylko read-only. Sprawdź to.
odpowiedzJuż chyba wiem co jest grane. Dzięki solaris na naprowadzenie :)
Z racji dość ostrej polityki bezpieczeństwa być może skrypt ma problem z użyciem serwerowego folderu tmp. Zmieniłem więc w wp-config miejsce pliku tmp poprzez:
define(‘WP_TEMP_DIR’, ABSPATH . ‘wp-content/tmp’);
Wcześniej tworząc ten folder i nadając mu uprawnienia 755.
W tym momencie w logach BackWPup występuje już nowa ścieżka folderu tmp i robi kopie bazy już chyba bez problemów.
odpowiedzŚwietnie! Dzięki za informację, z pewnością komuś się to jeszcze przyda.
odpowiedz[…] możliwość).Kopię bazy danych możesz wykonać np. poprzez phpMyAdmina (eksport) lub wtyczkę specjalną wtyczkę, która pomoże Ci zautomatyzować cały proces.Posiadając konto w profesjonalnej firmie […]
odpowiedzJestem naprawdę pod wielkim wrażeniem, dziękuję Panu bardzo za ten poradnik :)
odpowiedz[…] A kiedy tak się stanie, jedyną szansą na ich przywrócenie będzie skorzystanie z kopii zapasowej, jeśli ją posiadasz.Czym jest motyw potomny?Motyw potomny „dziedziczy” wygląd oraz funkcje […]
odpowiedz[…] aktualnej kopii zapasowej łatwiej będzie przywrócić stronę […]
odpowiedztestowałem tą wtyczkę i za każdym razem pojawiał się błąd. czy dałoby radę zaktualizować informacje o najnowsze wydanie wtyczki?
odpowiedzZasada działania wtyczki się nie zmieniła, jedynie wygląd interfejsu. Czy mógłbyś podać jaki błąd otrzymujesz?
odpowiedzERROR: No destination correctly defined for backup! Please correct job settings
(…)
WARNING: Job restart due to inactivity for more than 5 minutes
ogólnie backup trwa i trwa…
odpowiedzA jak masz ustawioną sekcję „general / job destination”?
odpowiedz[…] Warto więc zabezpieczyć się we własnym zakresie. […]
odpowiedzArtykuł stary, ale jary. Testuję wspomniany plugin. Na razie nieznacznie przegrywa (bardziej leżącym mi) interfejsem z UpdraftPlus Backup Restore…
odpowiedzNieźle, coraz więcej ciekawych wtyczek do WP :)
Dodam jeszcze od siebie, że jak ktoś nie lubi kombajnów jak wspomniany we wpisie BackWPUp (i chyba ten powyższy również) to zawsze można skorzystać z WP Backitup – małe, lekkie, właściwie bez możliwości konfiguracji, ale też daje radę.
odpowiedzKolejny artykuł o tej wtyczce i ani jednego słowa jak przywrócic potem strone wraz z baza po wykonaniu backupu. Dla takich naowicjuszy jak ja takie info jest niezbedne. Moze ktos dodac linka krok po kroku jak to potem przywracac?
odpowiedzNiby wszystko ok, kopia zrobiona.Martwi mnie tylko to, że ma wielkość 1,03GB!! czy tak powinno być?
odpowiedzJeśli masz całkiem sporo załączników (głównie zdjęć) to tak, taki rozmiar jest czymś normalnym. W razie wątpliwości zawsze możesz ściągnąć paczkę na komputer, wypakować i przeanalizować zawartość.
odpowiedzCzy ktoś z Was miał już sytuację, że wczytywał bazę z kopii z tej wtyczki? Mi się najlepiej na razie sprawdzały ręczne backupy w phpMyAdmin. Szukam czegoś automatycznego, tylko jak testowałem różne wtyczki, to często nie działał taki backup potem.
odpowiedzDodaj własny komentarz
Odnośniki z innych stron
Lista innych stron, które w jakiś sposób odnoszą się do opublikowanej tutaj treści:
[…] możliwość).Kopię bazy danych możesz wykonać np. poprzez phpMyAdmina (eksport) lub wtyczkę specjalną wtyczkę, która pomoże Ci zautomatyzować cały proces.Posiadając konto w profesjonalnej firmie […]
[…] A kiedy tak się stanie, jedyną szansą na ich przywrócenie będzie skorzystanie z kopii zapasowej, jeśli ją posiadasz.Czym jest motyw potomny?Motyw potomny „dziedziczy” wygląd oraz funkcje […]
[…] aktualnej kopii zapasowej łatwiej będzie przywrócić stronę […]
[…] Warto więc zabezpieczyć się we własnym zakresie. […]