publikacja: 13 maja 2011, autor: , komentarzy 47 http://wpninja.pl/artykuly/automatyczne-tworzenie-kopii-zapasowej-wordpressa/

Automatyczne tworzenie kopii zapasowej WordPressa

Automatyczne tworzenie kopii zapasowej WordPressa

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:
    BackWPup - zakładka Jobs

    BackWPup - zakładka 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:
    BackWPup - zakładka Logs

    BackWPup - zakładka 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:
    BackWPup - zakładka Backups

    BackWPup - zakładka Backups

    Trzecia sekcja umożliwia zarządzanie tymi kopiami, które zostały wgrane na ten sam serwer.

  • Tools:
    BackWPup - zakładka Tools

    BackWPup - zakładka 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:
    BackWPup - zakładka Settings

    BackWPup - zakładka 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:
    BackWPup - zakładka Jobs / Add New (1/3)

    BackWPup - zakładka Jobs / Add New (1/3)

    • 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:
    BackWPup - zakładka Jobs / Add New (2/3)

    BackWPup - zakładka Jobs / Add New (2/3)

    • 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:
    BackWPup - zakładka Jobs / Add New (3/3)

    BackWPup - zakładka Jobs / Add New (3/3)

    • 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

  1. Tomasz Kowalczyk 6 lat temu:

    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. ;]

    odpowiedz
  2. Szymon Skulimowski 6 lat temu:

    Dobra, a teraz przyznawać się kto robi kopię przed każdą aktualizacją WordPressa :)

    odpowiedz
    1. Fett 6 lat temu:

      Backup przed instalacją nowego WordPressa? A gdzie ta nutka adrenaliny? :D

      odpowiedz
    2. Tomasz Kowalczyk 6 lat temu:

      Na 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. ;]

      odpowiedz
  3. Maciek 6 lat temu:

    Heh, 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 :)

    odpowiedz
  4. Anonim 6 lat temu:

    Pomyś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.

    odpowiedz
  5. iTomek 6 lat temu:

    Ja 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?

    odpowiedz
    1. Szymon Skulimowski 6 lat temu:

      Zależy od hostingu. Są lepsze i gorsze i przekłada się to na podobne problemy.

      odpowiedz
    2. iTomek 6 lat temu:

      Chodzi 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.

      odpowiedz
    3. Szymon Skulimowski 6 lat temu:

      Z tego za zauważyłem to ta wtyczka nie stosuje żadnych magicznych trików i przy przekroczeniu czasu wykonywania najnormalniej się wywala.

      odpowiedz
    4. iTomek 6 lat temu:

      Szkoda :/

      odpowiedz
    5. Szymon Skulimowski 5 lat temu:

      Od 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.

      odpowiedz
  6. macias 6 lat temu:

    Prawda jest niestety taka, że większość z nas dopiero zrobi swój pierwszy backup. ;)

    odpowiedz
  7. Gleb Piatikow 6 lat temu:

    Dzię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 :)

    odpowiedz
  8. Mateusz 6 lat temu:

    Niestety 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.
    Widzę tylko połowę przycisku lubie to :)

    odpowiedz
    1. Szymon Skulimowski 5 lat temu:

      Widzę tylko połowę przycisku lubie to :)

      Magiczny przycisk jest na razie widoczny tylko dla rozdzielczości +1024 :D.

      odpowiedz
  9. Paweł Rabinek 5 lat temu:

    Przyznam, ż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!

    odpowiedz
  10. Gleb Piatikow 5 lat temu:

    A 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ść?

    odpowiedz
    1. Szymon Skulimowski 5 lat temu:

      A próbowałeś ostatnio? Od paru ostatnich wersji działa to dużo lepiej i ja sam nie natrafiam już na podobne problemy.

      odpowiedz
    2. Olek 5 lat temu:

      W 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.

      odpowiedz
    3. Szymon Skulimowski 5 lat temu:

      Ja 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.

      odpowiedz
    4. Olek 5 lat temu:

      Zanim 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.

      odpowiedz
    5. Szymon Skulimowski 5 lat temu:

      Proszę bardzo i powodzenia w rozwijaniu swojej strony.

      odpowiedz
  11. Rob 5 lat temu:

    Wtyczka 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
  12. vidax 5 lat temu:

    Świetna wtyczka. Najbardziej cieszy fakt, że prawie wszystko dzieje się automatycznie co pozwala zaoszczędzić mnóstwo czasu.

    odpowiedz
  13. Cyprian 5 lat temu:

    Backup to jedno, ale ciekaw jestem, czy ktoś próbował odzyskać, testować, czy wykonany w ten sposób backup uratuje życie :)

    PS
    Przypominam 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ć :)

    odpowiedz
    1. c0lin 5 lat temu:

      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 :)

      odpowiedz
  14. netuser95 5 lat temu:

    bardzo dobry artykuł, napewno się przyda :)

    odpowiedz
  15. Drumknott 5 lat temu:

    Cóż, ja ustawiłem by mi przysłał samą bazę danych na email, i wywala takie błędy:
    Ktoś wie dlaczego? Hosting iq.pl

    ...
    atabase dump done!
    2011/12/28 20:37.49: Add database dump "pitland_form.sql" with 500 KB to backup file list
    2011/12/28 20:37.49: [WARNING] file_put_contents() [function.file-put-contents]: Only 0 of 261 bytes written, possibly out of free disk space
    2011/12/28 20:37.49: Undefined offset: 0
    2011/12/28 20:37.49: [WARNING] filesize() [function.filesize]: stat failed for /tmp/.backwpup_64948828/backwpup_1_2011-12-28_20-37-48.zip
    2011/12/28 20:37.49: [WARNING] filesize() [function.filesize]: stat failed for /tmp/.backwpup_64948828/backwpup_1_2011-12-28_20-37-48.zip
    2011/12/28 20:37.49: 1. try to sending backup with mail...
    2011/12/28 20:37.49: Send mail with PHP mail
    2011/12/28 20:37.49: Creating mail
    2011/12/28 20:37.49: [WARNING] filesize() [function.filesize]: stat failed for /tmp/.backwpup_64948828/backwpup_1_2011-12-28_20-37-48.zip
    2011/12/28 20:37.49: Adding backup archive to mail
    2011/12/28 20:37.49: [WARNING] filesize() [function.filesize]: stat failed for /tmp/.backwpup_64948828/backwpup_1_2011-12-28_20-37-48.zip
    2011/12/28 20:37.49: Send mail....
    2011/12/28 20:37.49: [DEPRECATED] Function split() is deprecated
    2011/12/28 20:37.49: [WARNING] filesize() [function.filesize]: stat failed for /tmp/.backwpup_64948828/backwpup_1_2011-12-28_20-37-48.zip
    odpowiedz
    1. Szymon Skulimowski 5 lat temu:

      Sprawdziłeś czy przypadkiem nie kończy Ci się dostępne miejsce na serwerze?

      odpowiedz
    2. Drumknott 5 lat temu:

      Oczywiś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.
      Kilka 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ł.

      odpowiedz
    3. Mateusz Inowrocław 5 lat temu:

      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 :)

      odpowiedz
    4. solaris 5 lat temu:

      Sprawdziłeś prawa dostępu do tego katalogu? Być może /tmp jest tylko read-only. Sprawdź to.

      odpowiedz
    5. Drumknott 5 lat temu:

      Już 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
    6. Szymon Skulimowski 5 lat temu:

      Świetnie! Dzięki za informację, z pewnością komuś się to jeszcze przyda.

      odpowiedz
  16. Paulina 4 lata temu:

    Jestem naprawdę pod wielkim wrażeniem, dziękuję Panu bardzo za ten poradnik :)

    odpowiedz
  17. gall anonim 3 lata temu:

    testowałem tą wtyczkę i za każdym razem pojawiał się błąd. czy dałoby radę zaktualizować informacje o najnowsze wydanie wtyczki?

    odpowiedz
    1. Szymon Skulimowski 3 lata temu:

      Zasada działania wtyczki się nie zmieniła, jedynie wygląd interfejsu. Czy mógłbyś podać jaki błąd otrzymujesz?

      odpowiedz
    2. gall anonim 3 lata temu:

      ERROR: 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…

      odpowiedz
    3. Szymon Skulimowski 3 lata temu:

      A jak masz ustawioną sekcję „general / job destination”?

      odpowiedz
  18. Sławomir Piwowarczyk 2 lata temu:

    Artykuł stary, ale jary. Testuję wspomniany plugin. Na razie nieznacznie przegrywa (bardziej leżącym mi) interfejsem z UpdraftPlus Backup Restore

    odpowiedz
    1. Szymon Skulimowski 2 lata temu:

      Nieź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ę.

      odpowiedz

Dodaj własny komentarz

Odnośniki z innych stron

Lista innych stron, które w jakiś sposób odnoszą się do opublikowanej tutaj treści:

  1. 11 sposobów na zabezpieczenie WordPressa | WPNinja

    […] 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 […]

  2. Motywy potomne czyli jak dostosować motyw WordPressa do własnych potrzeb | WPNinja

    […] 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 […]

  3. BackWPup - wykonanie kopii blogu - wordpress dla Eli

    […] Tu można przeczytać szczegółowy opis wtyczki. […]

  4. Jak zabezpieczyć WordPressa przed atakiem „brute force” i dlaczego jeszcze tego nie zrobiłeś? | WPNinja

    […] aktualnej kopii zapasowej łatwiej będzie przywrócić stronę […]

  5. WordPress na home.pl? 7 rzeczy, na które trzeba uważać | WPNinja

    […] Warto więc zabezpieczyć się we własnym zakresie. […]