---
type: "product"
id: 351
url: "https://prestadev.pl/pl/backup-i-odtwarzanie-sklepu-pro-automatyczne-kopie-zapasowe-prestashop-z-odtwarzaniem-z-panelu-i-bez-panelu.html"
markdown_url: "https://prestadev.pl/pl/markdown/product/351.md"
title: "Backup i odtwarzanie sklepu Pro – automatyczne kopie zapasowe PrestaShop z odtwarzaniem z panelu i bez panelu"
image: "https://prestadev.pl/3557/backup-i-odtwarzanie-sklepu-pro-automatyczne-kopie-zapasowe-prestashop-z-odtwarzaniem-z-panelu-i-bez-panelu.jpg"
sku: "PDBARPRO"
brand: "PrestaDev.pl"
price: 178.00
price_tax_excluded: 144.72
currency: "PLN"
tax_included: true
availability: "in_stock"
is_pack: false
customization_required: false
condition: "new"
categories: ["Bezpieczeństwo, cookies i przepisy", "Import i eksport danych", "Moduły PrestaShop"]
language: "pl"
updated: "2026-10-05"
---

# Backup i odtwarzanie sklepu Pro – automatyczne kopie zapasowe PrestaShop z odtwarzaniem z panelu i bez panelu

**Backup i odtwarzanie sklepu Pro** to moduł PrestaShop, który według harmonogramu wykonuje kopie zapasowe całego sklepu – plików i bazy danych – sprawdza każdą kopię i wysyła ją poza serwer sklepu. Kopie mogą trafiać na drugi dysk lub dysk NAS, na serwer FTP, FTPS lub SFTP oraz do magazynu zgodnego z S3 (Amazon S3, Backblaze B2, Wasabi, Cloudflare R2, Hetzner, OVH, MinIO), a reguły retencji same usuwają starsze kopie. Każde zadanie działa krótkimi krokami i wznawia się w miejscu przerwania, dlatego moduł pracuje także na hostingu współdzielonym z krótkim limitem czasu wykonywania skryptów – z crona, z wiersza poleceń albo z przeglądarki. Kopie można szyfrować hasłem (AES-256), a każdy fragment kopii ma sumę kontrolną SHA-256, sprawdzaną zaraz po wykonaniu kopii i podczas próbnego odtworzenia. Sklep odtworzysz z panelu w trzech krokach – w całości, samą bazę, same pliki, wybrane tabele lub wybrane katalogi – a moduł może najpierw zapisać stan obecny, dzięki czemu samo odtworzenie da się cofnąć. Gdy panel administracyjny w ogóle się nie otwiera, jeden plik `pdrestore.php` odtwarza kopię bez działającego PrestaShop, także na pustym serwerze. Pulpit jednym zdaniem mówi, czy sklep jest chroniony, i wskazuje, czego brakuje, a e-mail przychodzi, gdy kopia się nie uda albo gdy zbyt długo żadnej nie było. Moduł działa na PrestaShop 1.7.0–9.x i PHP 7.0–8.5, bez Composera, bez dodatkowych bibliotek i bez uruchamiania poleceń systemowych.

## Description

## Do czego służy moduł

 - **Ochrona od pierwszej minuty.** Instalacja tworzy profil „Codzienna pełna kopia”: pliki i baza każdej nocy o 03:00, siedem najnowszych kopii na serwerze. Kopie z harmonogramu potrzebują wywołania crona co kilka minut albo wyzwalacza z panelu – pulpit pokazuje gotowy adres i komendę.
- **Kopia, która przetrwa awarię serwera.** Kopia leżąca tylko na tym samym serwerze co sklep przepada razem z nim. Moduł wysyła każdą gotową kopię do zaznaczonych miejsc poza serwerem i ostrzega na pulpicie, gdy żadnego takiego miejsca nie ma.
- **Zabezpieczenie przed aktualizacją.** Przycisk „Szybka migawka przed aktualizacją” kopiuje bazę oraz moduły, motywy, nadpisania i konfigurację – to, co aktualizacja może zepsuć – bez masy zdjęć, w ułamku czasu pełnej kopii.
- **Naprawa po awarii, włamaniu lub nieudanej zmianie.** Odtworzenie całego sklepu albo tylko jego części: bazy, plików, jednej tabeli lub jednego katalogu, na przykład motywu.
- **Odtworzenie na nowym serwerze.** Awaryjny skrypt `pdrestore.php` odtwarza sklep z kopii na pustym serwerze, bez zainstalowanego PrestaShop – po utracie serwera albo przy zmianie hostingu pod tym samym adresem sklepu.

 ## Co trafia do kopii zapasowej

 ### Pięć zakresów kopii

 - **Pliki i baza** – wszystko, czego trzeba do odbudowania sklepu (zalecane).
- **Tylko baza** – mała i szybka kopia, dobra do częstych kopii między pełnymi.
- **Tylko pliki** – zdjęcia, moduły, motywy i pozostałe pliki sklepu.
- **Szybka migawka** – baza oraz katalogi modules, themes, override, config, app/config, mails, translations, classes i controllers.
- **Własny zakres** – baza i zaznaczone katalogi najwyższego poziomu; luźne pliki katalogu głównego (index.php, .htaccess i podobne) są dołączane zawsze.

 ### Baza danych

 - **Zrzut w czystym PHP.** Tabele, widoki, wyzwalacze, procedury, funkcje i zdarzenia, bez narzędzia mysqldump i bez dostępu do powłoki serwera.
- **Tabele sklepu albo cała baza.** Domyślnie kopiowane są tabele z prefiksem sklepu; jedna opcja dołącza wszystkie tabele bazy, na przykład tabele zewnętrznej integracji.
- **Tabele bez wierszy i tabele pominięte.** Statystyki odwiedzin, indeks wyszukiwarki, pamięć podręczna i logi trafiają do kopii jako sama struktura. Własne listy pozwalają dodać kolejne tabele kopiowane bez wierszy albo pominąć tabele całkowicie.
- **Zamknięcie sklepu na czas kopiowania bazy.** Opcja profilu przełącza sklep w tryb konserwacji tylko na minuty zrzutu bazy, tak aby żadne zamówienie nie zostało uchwycone w połowie zapisu, i otwiera go ponownie – także wtedy, gdy kopia się nie powiedzie.

 ### Pliki i wykluczenia

 - **Zawsze pomijane.** Pamięć podręczna, logi, sesje, obrazy tymczasowe, katalogi .git i node\_modules, katalog kopii samego modułu oraz katalogi kopii innych modułów kopii zapasowych i modułu aktualizacji.
- **Własne wykluczenia.** Pomijane ścieżki z symbolem wieloznacznym (themes/\*/cache, \*\*/nazwa), pomijane typy plików (np. zip, mp4, psd) i limit rozmiaru pojedynczego pliku.
- **Miniatury i zdjęcia produktów.** Osobne opcje pomijają miniatury zdjęć (da się je wygenerować z oryginałów) albo cały katalog zdjęć produktów, gdy zdjęcia mają własną kopię.
- **Pliki zmieniane w trakcie kopii.** Plik zmieniony, usunięty lub nieczytelny podczas kopiowania jest odnotowywany w dzienniku, a kopia biegnie dalej.

 ### Kompresja i podział na pliki

 - **Cztery poziomy kompresji gzip** – brak, lekka, zalecana i najmocniejsza. Dane, które się nie kompresują (zdjęcia, archiwa), moduł sam zapisuje bez kompresji, oszczędzając czas.
- **Kopia podzielona na pliki** o wybranej wielkości (domyślnie 256 MB, od 16 do 4096 MB), dzięki czemu wysyłkę można wznawiać, a limity rozmiaru pliku na hostingu nie przeszkadzają. Obsługiwane są pliki sklepu większe niż 2 GB.

 ## Harmonogram i automatyczne kopie

 - **Profile kopii.** Każdy profil ma własny zakres, harmonogram, miejsca docelowe, reguły usuwania starych kopii i szyfrowanie – na przykład pełna kopia codziennie i dodatkowo sama baza co kilka godzin.
- **Harmonogram.** Tylko ręcznie, co kilka godzin (od 1 do 24 godzin albo co 2–7 dób), codziennie, w wybrane dni tygodnia lub raz w miesiącu (w krótszym miesiącu – ostatniego dnia), o godzinie w strefie czasowej sklepu.
- **Trzy sposoby uruchamiania.** Adres crona z tajnym tokenem (wywoływany co 5 minut, nowy adres jednym kliknięciem), wiersz poleceń `php modules/pdbackupandrestorepro/cli.php` z komendami cron, run i status – bez limitu czasu – oraz wyzwalacz z panelu dla hostingów bez crona, który uruchamia zaległą kopię przy wizycie pracownika w panelu.
- **Krótkie, wznawiane kroki.** Czas jednego kroku ustawiasz od 5 do 120 sekund (zalecane 20). Po każdym kroku postęp jest zapisywany, a adres crona sam wywołuje kolejny krok; gdy serwer na to nie pozwala, kopię kontynuuje następne wywołanie crona.
- **Postęp na żywo.** Pasek postępu, bieżący etap i ostatnie zdarzenia. Zamknięcie karty przeglądarki nie przerywa kopii, a przycisk „Zatrzymaj” kończy ją w najbliższym bezpiecznym miejscu.
- **Jedno zadanie naraz.** Blokada w bazie i blokada pliku nie pozwalają, by dwa procesy (np. cron i karta przeglądarki) wykonywały tę samą kopię jednocześnie. Zadanie, które trzy razy z rzędu nie zrobi postępu, kończy się błędem z podaną przyczyną.

 ## Gdzie przechowywać kopie: dysk, NAS, FTP, FTPS, SFTP, S3

 - **Inny katalog na tym serwerze** – drugi dysk albo zamontowany dysk sieciowy (NAS), poza katalogiem sklepu.
- **FTP i FTPS.** FTPS szyfruje połączenie i sprawdza certyfikat serwera (sprawdzanie można wyłączyć dla własnego serwera z certyfikatem podpisanym samodzielnie); tryb pasywny lub aktywny.
- **SFTP (SSH).** Logowanie hasłem albo kluczem prywatnym (RSA w formacie PEM lub klucz OpenSSH, także zabezpieczony hasłem; klucze ed25519 tam, gdzie obsługuje je cURL hostingu) oraz opcjonalny odcisk klucza serwera, z którym moduł rozmawia wyłącznie z właściwym serwerem.
- **Magazyn zgodny z S3.** Amazon S3, Backblaze B2, Wasabi, Cloudflare R2, Hetzner, OVH, MinIO i inne usługi zgodne z S3: adres usługi, region, bucket, katalog w buckecie (kilka sklepów w jednym buckecie) i adresowanie bucketu w ścieżce. Duże pliki są wysyłane w częściach, a moduł nigdy nie zmienia ustawień samego bucketu.
- **Test połączenia.** Przycisk „Testuj połączenie” zapisuje, odczytuje i usuwa plik próbny, a gdy usługa to podaje – pokazuje wolne miejsce. Wynik ostatniego testu widać na liście miejsc docelowych.
- **Wznawiana wysyłka.** Kopia jest wysyłana do zaznaczonych miejsc po kolei i w częściach; przerwana wysyłka wznawia się od miejsca, w którym stanęła, a na serwerach FTP, FTPS i SFTP rozmiar wysłanego pliku jest porównywany z oryginałem. Resztki kopii, której nie udało się wysłać, są usuwane z miejsca docelowego.
- **Skrypt odtwarzania razem z kopią.** Domyślnie do każdego miejsca poza serwerem trafia też `pdrestore.php`, więc kopię da się odtworzyć nawet wtedy, gdy sklepu i jego panelu już nie ma.

 ## Usuwanie starych kopii (retencja)

 - **W miejscach docelowych.** Liczba najnowszych kopii zachowywanych w każdym miejscu, usuwanie kopii starszych niż wybrana liczba dni oraz długa historia według schematu dzień–tydzień–miesiąc: dodatkowo najnowsza kopia z każdego z ostatnich dni, tygodni lub miesięcy.
- **Na tym serwerze.** Osobna liczba najnowszych kopii i osobny limit wieku. Przy braku miejsca na dysku profil może usuwać kopię z serwera, gdy dotrze ona do co najmniej jednego miejsca docelowego.
- **Czego reguły nie usuwają.** Najnowszej dobrej kopii, kopii oznaczonych jako chronione (na liście kopii albo dla całego profilu, np. migawek przed aktualizacją) i kopii, z której przygotowano odtwarzanie. Stare kopie są usuwane dopiero po tym, jak nowa kopia dotrze na miejsce.
- **Sprzątanie resztek.** Gdy profil nie trzyma kopii na serwerze, kopie pobrane do odtworzenia znikają z serwera po tygodniu, a z kopii, których nie udało się wysłać, zostają tam dwie najnowsze. Usunięcie przerwane w połowie jest ponawiane. Z kopii wykonanych z wiersza poleceń bez profilu na serwerze zostaje siedem najnowszych.

 ## Szyfrowanie kopii i bezpieczeństwo

 - **AES-256 z kontrolą integralności.** Każdy fragment kopii jest szyfrowany algorytmem AES-256 (tryb CTR) i podpisany HMAC-SHA256; klucz powstaje z hasła przez PBKDF2-SHA256 (200 000 iteracji). Zaszyfrowana jest także lista plików kopii, więc nazwy plików nie są widoczne.
- **Wykrywanie podmiany.** Opis kopii (manifest) jest podpisany, a każdy fragment związany z kopią, plikiem i miejscem w pliku – podmieniony, przestawiony lub podłożony z innej kopii fragment nie przejdzie kontroli.
- **Hasło kopii.** Co najmniej 12 znaków, wpisywane dwa razy, przechowywane w postaci zaszyfrowanej i nigdzie więcej niepokazywane. Bez hasła zaszyfrowanej kopii nie odtworzy nikt, także autor modułu. Nowe hasło dotyczy przyszłych kopii.
- **Zaszyfrowane dane logowania.** Hasła i klucze miejsc docelowych są przechowywane w bazie w postaci zaszyfrowanej i nie wracają do formularza.
- **Katalog kopii zamknięty dla internetu.** Przy instalacji moduł wybiera katalog poza publiczną częścią strony, jeśli hosting na to pozwala; w przeciwnym razie folder o losowej nazwie z plikami ochronnymi. Przycisk „Sprawdź z internetu” na pulpicie sprawdza, czy pliki z katalogu da się pobrać, a dla nginx podaje gotową regułę blokującą.
- **Ostrzeżenia w panelu.** Lista profili ostrzega, gdy niezaszyfrowane kopie trafiają poza serwer, a lista miejsc docelowych – gdy miejsce SFTP nie sprawdza klucza serwera.
- **Bez połączeń z serwerami autora.** Moduł nie wysyła danych do autora i nie uruchamia poleceń systemowych; poza własnym sklepem łączy się wyłącznie z miejscami docelowymi i adresem monitoringu, które sam ustawisz.

 ## Weryfikacja kopii i próbne odtworzenie

 - **Sprawdzenie każdej kopii.** Po wykonaniu kopia jest odczytywana ponownie, a sumy SHA-256 wszystkich jej fragmentów porównywane z zapisanymi. Na liście kopia ma wtedy status „zweryfikowana”.
- **Próbne odtworzenie.** Pełny odczyt kopii – odszyfrowanie, dekompresja, sprawdzenie archiwum i policzenie instrukcji SQL względem opisu kopii – bez żadnych zmian w sklepie. Kopia przechowywana tylko poza serwerem jest do tego pobierana.
- **Przypomnienie.** Pulpit zaznacza, gdy w ostatnim miesiącu żadna kopia nie została odczytana w całości.

 ## Odtwarzanie sklepu z kopii w panelu

 - **Kreator w trzech krokach.** Wybór kopii, wybór tego, co ma wrócić, i potwierdzenie przez wpisanie adresu sklepu. Do potwierdzenia nic się nie zmienia.
- **Pięć zakresów odtwarzania.** Wszystko, co jest w kopii; tylko baza danych; tylko pliki; wybrane tabele; wybrane katalogi (np. themes/classic albo img/p).
- **Najpierw stan obecny.** Zalecana opcja wykonuje przed odtworzeniem chronioną kopię tego, co zostanie zastąpione – przy kopiach szyfrowanych zaszyfrowaną hasłem profilu. Jeśli odtworzenie okaże się pomyłką, wracasz do stanu sprzed niego.
- **Kontrola przed startem.** Wolne miejsce na dysku, prawo zapisu w katalogu sklepu, zgodność prefiksu tabel, wersja PrestaShop, z której pochodzi kopia, i hasło kopii zaszyfrowanej. Ostrzeżenia są pokazane przed potwierdzeniem.
- **Bezpieczne wykonanie.** Na czas odtwarzania sklep jest zamknięty dla klientów i otwierany na końcu. Odtwarzanie działa na osobnej stronie poza panelem, bo sam panel jest w tym czasie zastępowany; po przerwaniu rusza od miejsca, w którym stanęło, a strona usuwa się po zakończeniu.
- **Plik ustawień i logowanie.** Plik ustawień PrestaShop pochodzi z kopii, ale zachowuje połączenie z bazą bieżącego serwera. Po odtworzeniu bazy pracownicy logują się kontami z dnia wykonania kopii.
- **Kopie spoza serwera.** Kopię przechowywaną tylko w miejscu docelowym przycisk „Pobierz i sprawdź” pobiera i od razu odczytuje w całości, zanim posłuży do odtworzenia.
- **Kopie z nowszego serwera bazy.** Przy odtwarzaniu kopii wykonanej na nowszej wersji MySQL lub MariaDB nieznane kolacje i usunięte tryby SQL są zastępowane odpowiednikami, a pozostałe błędy są zgłaszane.
- **Przerwane odtwarzanie.** Odtwarzanie, które przez 10 minut nie da znaku życia, można porzucić z panelu – sklep zostaje ponownie otwarty, a kopie znów są wykonywane.

 ## Awaryjne odtwarzanie bez panelu: pdrestore.php

 - **Jeden plik.** `pdrestore.php` pobierzesz z zakładki Odtwarzanie; domyślnie leży też w każdym miejscu docelowym obok kopii.
- **Bez PrestaShop.** Wgrywasz skrypt razem z plikami kopii (nazwy zaczynające się od pdbr-) do katalogu sklepu i otwierasz go w przeglądarce. Gdy na serwerze nie ma sklepu, skrypt pyta o dane bazy danych.
- **Dowód dostępu do serwera.** Skrypt tworzy obok siebie plik z kodem, który trzeba przepisać – nikt obcy, kto zna adres skryptu, go nie użyje.
- **Wznawianie i sprzątanie.** Po zerwaniu połączenia odtwarzanie rusza od ostatniego ukończonego kroku, a na koniec skrypt usuwa się z serwera jednym przyciskiem. Interfejs po polsku i angielsku.

 ## Pulpit: czy sklep jest chroniony?

 - **Ocena w jednym zdaniu.** Na przykład „Sklep jest chroniony. Ostatnia kopia jest z …, następna zaplanowana na …” albo konkretny problem: brak kopii, nieudana kopia, zbyt stara kopia, niedziałający cron, brak miejsca poza serwerem, katalog kopii otwarty z internetu.
- **Lista kontrolna.** Ostatnia kopia, jej wiek, harmonogram, cron, kopia poza serwerem, katalog kopii, powiadomienia i próbne odtworzenie – każdy punkt z przyciskiem prowadzącym do miejsca, w którym go naprawisz.
- **Kafelki, wykres i zdarzenia.** Ostatnia dobra kopia, następna kopia, liczba kopii na serwerze (z ich rozmiarem) i w każdym miejscu docelowym, wolne miejsce na dysku, wykres rozmiaru i czasu ostatnich kopii oraz ostatnie zdarzenia z dziennika.
- **Cztery pytania na start.** Co kopiować, gdzie trzymać kopie, kiedy i kogo powiadomić – odpowiedzi zapisują się w profilu. Nowe miejsce docelowe dodasz w trakcie, a po udanym teście połączenia wrócisz do pytań z tym miejscem zaznaczonym.
- **Test środowiska.** Wersja PHP, rozszerzenia, limity czasu i pamięci, katalog kopii i wolne miejsce na dysku – z wyjaśnieniem, co każde ograniczenie oznacza.
- **Nagłówek na każdej zakładce.** Ostatnia dobra kopia, najbliższa zaplanowana kopia i stan ochrony widoczne z każdej strony modułu.

 ## Powiadomienia e-mail i monitoring

 - **Alarmy.** E-mail, gdy kopia się nie uda; gdy kopia powstała, ale nie dotarła do wszystkich miejsc docelowych; gdy profil nie ma dokąd jej wysłać; gdy kopia z harmonogramu nie mogła się rozpocząć oraz gdy przez ustawiony czas (domyślnie 48 godzin) nie ma udanej kopii.
- **Potwierdzenia.** Opcjonalny e-mail po każdej udanej kopii, z rozmiarem i liczbą miejsc, w których jest przechowywana.
- **Odbiorcy i język.** Dowolna lista adresów (puste pole = adres e-mail sklepu); wiadomości w języku domyślnym sklepu, po polsku albo po angielsku.
- **Adres monitoringu (heartbeat).** Wywoływany po każdej udanej kopii, dzięki czemu zewnętrzna usługa monitoringu powiadomi Cię, gdy kopie przestaną powstawać. Ustawienia pokazują, kiedy ostatnio odezwał się cron, a pulpit alarmuje, gdy cron przestał wywoływać sklep.

 ## Lista kopii i dziennik

 - **Lista kopii.** Profil, zawartość, rozmiar, czas trwania, miejsca przechowywania, wynik weryfikacji i ochrona. Szczegóły kopii: rozmiar przed kompresją, liczba plików i tabel, szyfrowanie oraz wersje PrestaShop i modułu, które ją wykonały.
- **Działania na kopii.** Pobranie plików kopii na własny komputer (z możliwością wznowienia pobierania), notatka, ochrona przed automatycznym usuwaniem, próbne odtworzenie, odtworzenie i usunięcie ze wszystkich miejsc naraz.
- **Znajdź kopie w katalogu.** Kopie leżące w katalogu kopii, a nieobecne na liście (np. przeniesione z innego serwera), są dodawane do listy jednym przyciskiem.
- **Dziennik.** Każdy krok kopii, wysyłki i odtwarzania z czytelnym, przetłumaczonym komunikatem; filtrowanie i pobieranie dziennika jako pliku tekstowego. Pobrania kopii, odtworzenia i porzucenia odtwarzania – z nazwą pracownika – są przechowywane przez dwa lata, pozostałe wpisy przez sześć miesięcy.

 ## Otwarty format kopii

 - **Zwykłe archiwa .tar.gz.** Niezaszyfrowaną kopię otworzy każdy program do archiwów (7-Zip, WinRAR, tar), a baza jest w środku jako pliki SQL w katalogu db – kopia nie uzależnia od modułu.
- **Niezależne fragmenty.** Każdy plik kopii składa się z fragmentów kompresowanych i sprawdzanych osobno, dzięki czemu kopię, weryfikację, wysyłkę i odtwarzanie można wznawiać po przerwie.

 ## Uprawnienia, wiele sklepów i odinstalowanie

 - **Uprawnienia pracowników.** Pracownik z prawem podglądu widzi kopie, postęp i dziennik; uruchamianie kopii, pobieranie plików kopii, odtwarzanie i zmiana ustawień wymagają prawa edycji. Każde działanie w panelu sprawdza token bezpieczeństwa i uprawnienia.
- **Wiele sklepów (multistore).** Kopia obejmuje całą instalację PrestaShop – wszystkie sklepy naraz – a ustawienia modułu są wspólne dla instalacji.
- **Odinstalowanie.** Usuwa ustawienia modułu, harmonogramy i historię kopii. Pliki kopii na dysku i w miejscach docelowych zostają.

 ## Wymagania i zgodność

 - **PrestaShop 1.7.0–9.x, PHP 7.0–8.5 (64-bitowe), MySQL 5.6+ lub MariaDB 10+.**
- **Rozszerzenia PHP.** zlib (kompresja, wymagane), OpenSSL (szyfrowanie kopii i ochrona danych logowania), cURL (FTP, FTPS, SFTP, S3, sprawdzanie katalogu kopii z internetu i adres monitoringu); SFTP wymaga cURL zbudowanego z obsługą SFTP. Ustawienie mbstring.func\_overload musi być wyłączone.
- **Małe wymagania pamięciowe.** Sam silnik kopii potrzebuje około 20 MB pamięci; krótki limit czasu żądania nie przeszkadza.
- **Bez zależności.** Bez Composera, bez dołączonych bibliotek, bez exec i poleceń powłoki.
- **Języki.** Interfejs modułu, e-maile i skrypt odtwarzania po polsku i angielsku.

 ## Ważne granice działania (wersja 1.0)

 - Odtworzenie pod innym adresem sklepu albo do bazy z innym prefiksem tabel nie jest obsługiwane – moduł odmawia przed pierwszą zmianą.
- Każda kopia jest pełną kopią swojego zakresu; kopie przyrostowe nie są dostępne.
- Wśród miejsc docelowych nie ma Google Drive ani Dropbox.
- Odtworzenie nie usuwa plików ani tabel, które pojawiły się w sklepie po wykonaniu kopii.
- Widoki, wyzwalacze i procedury wracają tylko przy odtwarzaniu całej bazy.
- Kopia bazy wykonywana przez adres crona lub przeglądarkę powstaje w wielu krótkich krokach; w ruchliwym sklepie zalecana jest opcja zamknięcia sklepu na czas kopiowania bazy albo uruchamianie kopii z wiersza poleceń.
- Kopie z harmonogramu wymagają crona; wyzwalacz z panelu jest wyjściem awaryjnym zależnym od wizyt pracowników.
- Skrypt awaryjny potrzebuje pliku opisu kopii (nazwa kończy się na .manifest.json).
- Odinstalowanie zostawia w katalogu sklepu pliki rozpoczętego i niedokończonego odtwarzania (pdbr-restore-\*) – trzeba je dokończyć, porzucić w panelu albo usunąć ręcznie.
- Dziennik przez dwa lata przechowuje nazwy pracowników, którzy pobrali kopię lub odtworzyli sklep – warto to uwzględnić w rejestrze czynności przetwarzania danych osobowych.

## Features

| Feature | Value |
| --- | --- |
| Obsługa Prestashop 9.x | Tak |
| Obsługa Prestashop 8.x  | Tak |
| Obsługa Prestashop 1.7.x | Tak |
| Tłumaczenia modułu | PL, ENG |
| Darmowe wsparcie (30 dni) | Tak |
| Darmowe aktualizacje (1 rok) | Tak |

## Categories

- Bezpieczeństwo, cookies i przepisy
- Import i eksport danych
- Moduły PrestaShop

## Questions and answers

### Jak działa moduł Backup i odtwarzanie sklepu Pro?

Language: pl

Moduł według harmonogramu wykonuje kopie zapasowe plików i bazy danych sklepu PrestaShop, sprawdza każdą kopię i wysyła ją do wybranych miejsc poza serwerem: na drugi dysk lub NAS, na serwer FTP, FTPS lub SFTP albo do magazynu zgodnego z S3. Stare kopie usuwa według ustawionych reguł, a e-mailem informuje, gdy kopia się nie uda albo gdy zbyt długo żadnej nie było. Z kopii odtworzysz sklep w panelu, a gdy panel nie działa – awaryjnym skryptem pdrestore.php.

### Z którymi wersjami PrestaShop i PHP działa moduł?

Language: pl

Moduł działa na PrestaShop 1.7.0–9.x i PHP 7.0–8.5 w wersji 64-bitowej, z bazą MySQL 5.6+ lub MariaDB 10+. Wymaga rozszerzenia zlib; OpenSSL jest potrzebny do szyfrowania kopii i ochrony zapisanych danych logowania, a cURL do miejsc FTP, FTPS, SFTP i S3 (SFTP wymaga cURL z obsługą SFTP). Moduł nie potrzebuje Composera ani dodatkowych bibliotek i nie uruchamia poleceń systemowych, więc działa także na hostingu, który blokuje exec.

### Co dokładnie znajduje się w kopii zapasowej?

Language: pl

Do wyboru jest pięć zakresów: pliki i baza (cały sklep, zalecane), tylko baza, tylko pliki, szybka migawka (baza oraz moduły, motywy, nadpisania, konfiguracja, szablony e-maili, tłumaczenia, klasy i kontrolery) oraz własny zakres (baza i wybrane katalogi). Kopia bazy obejmuje tabele, widoki, wyzwalacze, procedury, funkcje i zdarzenia. Pamięć podręczna, logi, sesje, obrazy tymczasowe oraz katalogi .git i node\_modules są pomijane zawsze, a statystyki odwiedzin, indeks wyszukiwarki i logi trafiają do kopii jako sama struktura tabel, bez wierszy.

### Czy moduł działa na hostingu współdzielonym z krótkim limitem czasu wykonywania skryptu?

Language: pl

Tak. Każde zadanie – kopia, wysyłka, weryfikacja i odtwarzanie – pracuje krótkimi krokami (domyślnie 20 sekund, do ustawienia od 5 do 120) i po każdym kroku zapisuje postęp, a kolejny krok rusza przy następnym wywołaniu. Dzięki temu kopia dużego sklepu powstaje także na hostingu z limitem 30 sekund na żądanie. Sam silnik kopii potrzebuje około 20 MB pamięci.

### Jak ustawić automatyczne kopie zapasowe według harmonogramu?

Language: pl

W profilu kopii wybierasz częstotliwość – co kilka godzin, codziennie, w wybrane dni tygodnia albo raz w miesiącu – oraz godzinę w strefie czasowej sklepu. Kopie z harmonogramu potrzebują zadania cron na hostingu wywoływanego co 5 minut: adresu z tajnym tokenem albo komendy php modules/pdbackupandrestorepro/cli.php cron. Pulpit pokazuje gotowy adres i komendę do skopiowania oraz ostrzega, gdy cron przestał wywoływać sklep. Zaraz po instalacji moduł ma profil „Codzienna pełna kopia”, który kopiuje pliki i bazę codziennie o 03:00.

### Co zrobić, jeśli mój hosting nie ma crona?

Language: pl

W zakładce Ustawienia, w sekcji Automatyzacja, włącz wyzwalacz z panelu: gdy zaplanowana kopia jest zaległa, wizyta dowolnego pracownika w panelu uruchamia ją w tle. To wyjście awaryjne – kopie zależą wtedy od tego, czy ktoś zajrzy do panelu. Kopię możesz też zawsze uruchomić ręcznie przyciskiem na pulpicie i śledzić jej postęp na żywo.

### Gdzie mogę przechowywać kopie zapasowe sklepu?

Language: pl

Kopie zostają w katalogu kopii na serwerze sklepu i są wysyłane do miejsc docelowych: innego katalogu na serwerze (drugi dysk, zamontowany NAS), serwera FTP, FTPS lub SFTP oraz magazynu zgodnego z S3, np. Amazon S3, Backblaze B2, Wasabi, Cloudflare R2, Hetzner, OVH lub MinIO. Jeden profil może wysyłać kopie do kilku miejsc. Google Drive i Dropbox nie są obsługiwane w wersji 1.0.

### Czy mogę wysyłać kopie na własny dysk sieciowy NAS, np. Synology?

Language: pl

Tak. Włącz na NAS-ie usługę FTPS lub SFTP, załóż konto z prawem zapisu w katalogu kopii i dodaj je w module jako miejsce docelowe (zwykłe FTP nie szyfruje połączenia i nadaje się tylko do zaufanej sieci). Przy certyfikacie podpisanym samodzielnie wyłącz w miejscu docelowym sprawdzanie certyfikatu. NAS zamontowany jako dysk na serwerze sklepu dodasz jako „Inny katalog na tym serwerze”. Przycisk „Testuj połączenie” od razu sprawdza zapis, odczyt i usunięcie pliku próbnego.

### Jak moduł usuwa stare kopie (retencja)?

Language: pl

Dla miejsc docelowych ustawiasz, ile najnowszych kopii zostaje w każdym miejscu, po ilu dniach usuwać starsze oraz opcjonalnie długą historię: dodatkowo najnowszą kopię z każdego z ostatnich dni, tygodni lub miesięcy. Dla serwera sklepu jest osobny limit liczby i wieku kopii, a profil może usuwać kopię z serwera, gdy dotrze do miejsca docelowego. Najnowsza dobra kopia i kopie oznaczone jako chronione nigdy nie są usuwane, a stare kopie znikają dopiero wtedy, gdy nowa dotrze na miejsce.

### Czy kopie zapasowe są szyfrowane i co się stanie, jeśli zgubię hasło?

Language: pl

Szyfrowanie włączasz w profilu kopii: każdy fragment kopii jest szyfrowany algorytmem AES-256 i podpisany HMAC-SHA256, a klucz powstaje z Twojego hasła (co najmniej 12 znaków). Zaszyfrowana jest także lista plików kopii. Bez hasła zaszyfrowanej kopii nie odtworzy nikt, także autor modułu – zapisz hasło i przechowuj je poza sklepem. Nowe hasło dotyczy tylko przyszłych kopii; wcześniejsze wymagają hasła, z którym powstały.

### Skąd mam pewność, że kopia zapasowa nadaje się do odtworzenia?

Language: pl

Każdy fragment kopii ma sumę kontrolną SHA-256. Zaraz po wykonaniu kopia jest odczytywana ponownie i sprawdzana, a na liście dostaje status „zweryfikowana”. Dodatkowo „Próbne odtworzenie” czyta całą kopię – odszyfrowuje ją, rozpakowuje, sprawdza archiwum i liczy instrukcje SQL względem opisu kopii – bez żadnych zmian w sklepie. Pulpit przypomina, gdy w ostatnim miesiącu żadna kopia nie została odczytana w całości.

### Jak przywrócić sklep z kopii zapasowej w panelu?

Language: pl

W zakładce Odtwarzanie (albo przyciskiem „Odtwórz tę kopię” na liście kopii) wybierasz kopię i zakres, a następnie potwierdzasz, wpisując adres sklepu. Przed odtworzeniem moduł może zapisać stan obecny jako chronioną kopię, dzięki czemu samo odtworzenie da się cofnąć. Na czas odtwarzania sklep jest zamknięty dla klientów; odtwarzanie działa na osobnej stronie poza panelem i po przerwaniu rusza od miejsca, w którym stanęło. Po odtworzeniu bazy logujesz się kontem pracownika z dnia wykonania kopii.

### Czy mogę odtworzyć tylko bazę danych, same pliki, jedną tabelę albo jeden katalog?

Language: pl

Tak. Kreator odtwarzania ma pięć zakresów: wszystko z kopii, tylko baza danych, tylko pliki, wybrane tabele oraz wybrane katalogi (np. themes/classic albo img/p). Przy odtwarzaniu samych plików, np. po nieudanej aktualizacji motywu, zamówienia złożone po wykonaniu kopii zostają w bazie. Widoki, wyzwalacze i procedury wracają tylko przy odtwarzaniu całej bazy.

### Co zrobić, gdy panel administracyjny PrestaShop w ogóle się nie otwiera?

Language: pl

Użyj awaryjnego skryptu pdrestore.php: pobierzesz go z zakładki Odtwarzanie, a domyślnie leży też w każdym miejscu docelowym obok kopii. Wgraj go razem z plikami kopii (nazwy zaczynające się od pdbr-) do katalogu sklepu i otwórz w przeglądarce. Skrypt nie potrzebuje działającego PrestaShop; dostęp otwiera kod z pliku, który skrypt tworzy obok siebie, a po zakończeniu usuwa się z serwera jednym przyciskiem. Skrypt potrzebuje pliku opisu kopii (nazwa kończy się na .manifest.json).

### Czy mogę odtworzyć sklep na nowym serwerze lub pod innym adresem?

Language: pl

Na nowym, pustym serwerze – tak: skrypt pdrestore.php zapyta o dane bazy danych i odtworzy sklep z kopii, np. po utracie serwera albo przy zmianie hostingu. Adres sklepu i prefiks tabel pozostają takie jak w kopii: odtworzenie pod inną domeną albo do bazy z innym prefiksem tabel nie jest obsługiwane w wersji 1.0, a moduł odmawia go przed pierwszą zmianą.

### Czy kopię zapasową da się otworzyć bez modułu?

Language: pl

Tak, jeśli nie jest zaszyfrowana: pliki kopii to zwykłe archiwa .tar.gz, które otworzy 7-Zip, WinRAR albo polecenie tar, a baza danych jest w środku jako pliki SQL w katalogu db. Kopię zaszyfrowaną odczyta moduł albo skrypt pdrestore.php po podaniu hasła.

### Czy sklep jest wyłączany na czas wykonywania kopii?

Language: pl

Domyślnie nie – kopia powstaje przy otwartym sklepie. Opcja profilu „Zamknij sklep na czas kopiowania bazy” włącza tryb konserwacji tylko na minuty zrzutu bazy, aby żadne zamówienie nie zostało uchwycone w połowie zapisu, i otwiera sklep ponownie, także gdy kopia się nie uda. Jest zalecana dla ruchliwych sklepów, których kopia idzie przez adres crona; kopia z wiersza poleceń z długim limitem czasu jej nie potrzebuje. Na czas odtwarzania sklep jest zamykany zawsze.

### Ile miejsca na dysku potrzebuje kopia i czy moduł poradzi sobie z dużym sklepem?

Language: pl

Pełna kopia potrzebuje na serwerze mniej więcej tyle miejsca, ile zajmują pliki i baza sklepu. Kopia jest dzielona na pliki o wybranej wielkości (domyślnie 256 MB, od 16 do 4096 MB), a pojedyncze pliki sklepu mogą mieć ponad 2 GB. Przy braku miejsca profil może usuwać kopię z serwera po dostarczeniu jej do miejsca docelowego, a mniejszą kopię dają pomijanie miniatur zdjęć (da się je wygenerować ponownie), wybranych typów plików lub plików powyżej ustalonego rozmiaru.

### Jakie powiadomienia e-mail wysyła moduł?

Language: pl

E-mail przychodzi, gdy kopia się nie uda; gdy powstała, ale nie dotarła do wszystkich miejsc docelowych; gdy profil nie ma dokąd jej wysłać; gdy kopia z harmonogramu nie mogła się rozpocząć oraz gdy przez ustawiony czas (domyślnie 48 godzin) nie ma udanej kopii. Opcjonalnie dostaniesz e-mail po każdej udanej kopii. Wiadomości przychodzą w języku domyślnym sklepu (po polsku albo po angielsku), a po każdej udanej kopii moduł może wywołać adres monitoringu (heartbeat) zewnętrznej usługi.

### Co pokazuje pulpit modułu?

Language: pl

Pulpit jednym zdaniem ocenia, czy sklep jest chroniony, i pokazuje listę kontrolną: ostatnia kopia i jej wiek, harmonogram, cron, kopia poza serwerem, katalog kopii zamknięty dla internetu, powiadomienia i próbne odtworzenie – każdy punkt z przyciskiem do miejsca naprawy. Są też kafelki z ostatnią i następną kopią, liczbą kopii i wolnym miejscem, wykres rozmiaru i czasu ostatnich kopii, ostatnie zdarzenia, test środowiska serwera oraz cztery pytania startowe do szybkiej konfiguracji.

### Jak zrobić kopię przed aktualizacją PrestaShop albo modułu?

Language: pl

Na pulpicie użyj przycisku „Szybka migawka przed aktualizacją”. Migawka kopiuje bazę oraz moduły, motywy, nadpisania i konfigurację – to, co aktualizacja może zepsuć – bez masy zdjęć, więc trwa ułamek czasu pełnej kopii. Kopię możesz opisać notatką, np. „przed aktualizacją do 9.1”, i oznaczyć jako chronioną, aby reguły usuwania starych kopii jej nie usunęły.

### Czy moduł obsługuje tryb wielu sklepów (multistore)?

Language: pl

Tak. Kopia obejmuje całą instalację PrestaShop – pliki i bazę wszystkich sklepów naraz – a ustawienia modułu są wspólne dla całej instalacji. Odtwarzanie przywraca tę instalację w całości albo w wybranym zakresie.

### Kto w panelu może wykonywać, pobierać i odtwarzać kopie?

Language: pl

Decydują uprawnienia profilu pracownika w PrestaShop: pracownik z prawem podglądu widzi kopie, postęp i dziennik, a uruchamianie kopii, pobieranie plików kopii, odtwarzanie i zmiana ustawień wymagają prawa edycji. Dziennik przez dwa lata przechowuje, kto pobrał kopię, odtworzył sklep albo porzucił odtwarzanie, a pozostałe wpisy przez sześć miesięcy.

### Jak chronione są kopie i dane logowania do miejsc docelowych?

Language: pl

Hasła i klucze do miejsc docelowych oraz hasło szyfrowania kopii są przechowywane w bazie w postaci zaszyfrowanej i nie są ponownie wyświetlane. Katalog kopii moduł wybiera poza publiczną częścią strony, jeśli hosting na to pozwala, a w przeciwnym razie używa folderu o losowej nazwie z plikami ochronnymi; przycisk „Sprawdź z internetu” na pulpicie sprawdza, czy kopii nie da się pobrać przez stronę, i dla nginx podaje gotową regułę blokującą. Moduł nie wysyła danych do autora – poza własnym sklepem łączy się wyłącznie z miejscami docelowymi i adresem monitoringu, które sam ustawisz.

### Czy mogę uruchamiać kopie z wiersza poleceń (SSH)?

Language: pl

Tak. Komenda php modules/pdbackupandrestorepro/cli.php run wykonuje kopię profilu (--profile=ID) albo wybranego zakresu (--scope=full, database, files lub snapshot), cron uruchamia zaplanowane kopie, a status pokazuje bieżące zadanie. Z wiersza poleceń kopia nie ma limitu czasu; uruchamiaj komendy jako użytkownik, który jest właścicielem plików sklepu. Kopie z parametrem --scope nie należą do żadnego profilu – na serwerze zostaje siedem najnowszych.

### Co się dzieje z kopiami po odinstalowaniu modułu?

Language: pl

Odinstalowanie usuwa ustawienia modułu, harmonogramy i historię kopii, ale pliki kopii na dysku i w miejscach docelowych zostają. Pliki rozpoczętego, a niedokończonego odtwarzania (pdbr-restore-\*) trzeba przed odinstalowaniem dokończyć albo porzucić w panelu; w przeciwnym razie zostają w katalogu sklepu i usuwa się je ręcznie.

