---
type: "product"
id: 351
url: "https://prestadev.pl/uk/backup-i-odtwarzanie-sklepu-pro-automatyczne-kopie-zapasowe-prestashop-z-odtwarzaniem-z-panelu-i-bez-panelu.html"
markdown_url: "https://prestadev.pl/uk/markdown/product/351.md"
title: "Резервне копіювання та відновлення магазину Pro – автоматичні резервні копії PrestaShop з відновленням з панелі та без панелі"
image: "https://prestadev.pl/3557/rezervne-kopiuvanna-ta-vidnovlenna-magazinu-pro-avtomaticni-rezervni-kopii-prestashop-z-vidnovlennam-z-paneli-ta-bez-paneli.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: ["Імпорт і експорт даних", "Безпека, cookies та нормативні вимоги", "Модулі PrestaShop"]
language: "uk"
updated: "2026-10-05"
---

# Резервне копіювання та відновлення магазину Pro – автоматичні резервні копії PrestaShop з відновленням з панелі та без панелі

**Резервне копіювання та відновлення магазину Pro** — це модуль PrestaShop, який за розкладом створює резервні копії всього магазину — файлів і бази даних — перевіряє кожну копію та надсилає її за межі сервера магазину. Копії можуть потрапляти на другий диск або диск NAS, на сервер FTP, FTPS або SFTP, а також до сховища, сумісного з S3 (Amazon S3, Backblaze B2, Wasabi, Cloudflare R2, Hetzner, OVH, MinIO), а правила зберігання самі видаляють старіші копії. Кожне завдання працює короткими кроками й відновлюється з місця переривання, тому модуль працює також на спільному хостингу з коротким лімітом часу виконання скриптів — із cron, з командного рядка або з браузера. Копії можна шифрувати паролем (AES-256), а кожен фрагмент копії має контрольну суму SHA-256, яка перевіряється одразу після створення копії та під час тестового відновлення. Магазин можна відновити з панелі у три кроки — повністю, лише базу даних, лише файли, вибрані таблиці або вибрані каталоги — а модуль може спочатку зберегти поточний стан, завдяки чому саме відновлення можна скасувати. Якщо панель адміністрування взагалі не відкривається, один файл `pdrestore.php` відновлює копію без працюючого PrestaShop, також на порожньому сервері. Панель одним реченням повідомляє, чи магазин захищений, і вказує, чого бракує, а електронний лист надходить, якщо копію не вдалося створити або якщо занадто довго не було жодної. Модуль працює на PrestaShop 1.7.0–9.x і PHP 7.0–8.5, без Composer, без додаткових бібліотек і без запуску системних команд.

## Description

## Для чого призначений модуль

 - **Захист із першої хвилини.** Під час встановлення створюється профіль «Щоденна повна копія»: файли та база щоночі о 03:00, сім найновіших копій на сервері. Копії за розкладом потребують виклику cron кожні кілька хвилин або тригера з панелі — на інформаційній панелі показано готову адресу та команду.
- **Копія, яка переживе збій сервера.** Копія, що лежить лише на тому самому сервері, що й магазин, зникає разом із ним. Модуль надсилає кожну готову копію до позначених місць поза сервером і попереджає на інформаційній панелі, якщо жодного такого місця немає.
- **Захист перед оновленням.** Кнопка «Швидкий знімок перед оновленням» копіює базу, а також модулі, теми, перевизначення та конфігурацію — те, що оновлення може зламати — без маси зображень, за частку часу повної копії.
- **Відновлення після збою, злому або невдалої зміни.** Відновлення всього магазину або лише його частини: бази, файлів, однієї таблиці або одного каталогу, наприклад теми.
- **Відновлення на новому сервері.** Аварійний скрипт `pdrestore.php` відновлює магазин із копії на порожньому сервері, без встановленого PrestaShop — після втрати сервера або при зміні хостингу за тією самою адресою магазину.

 ## Що потрапляє до резервної копії

 ### П’ять діапазонів копії

 - **Файли та база** — усе, що потрібно для відновлення магазину (рекомендовано).
- **Лише база** — мала й швидка копія, добра для частих копій між повними.
- **Лише файли** — зображення, модулі, теми та решта файлів магазину.
- **Швидкий знімок** — база та каталоги modules, themes, override, config, app/config, mails, translations, classes і controllers.
- **Власний діапазон** — база та позначені каталоги верхнього рівня; окремі файли кореневого каталогу (index.php, .htaccess і подібні) додаються завжди.

 ### База даних

 - **Дамп у чистому PHP.** Таблиці, подання, тригери, процедури, функції та події, без інструмента mysqldump і без доступу до оболонки сервера.
- **Таблиці магазину або вся база.** За замовчуванням копіюються таблиці з префіксом магазину; одна опція додає всі таблиці бази, наприклад таблиці зовнішньої інтеграції.
- **Таблиці без рядків і пропущені таблиці.** Статистика відвідувань, індекс пошукової системи, кеш і логи потрапляють до копії лише як структура. Власні списки дають змогу додати наступні таблиці, що копіюються без рядків, або повністю пропустити таблиці.
- **Закриття магазину на час копіювання бази.** Опція профілю переводить магазин у режим обслуговування лише на хвилини дампу бази, щоб жодне замовлення не було зафіксоване посеред запису, і знову відкриває його — також тоді, коли копія не вдалася.

 ### Файли та виключення

 - **Завжди пропускаються.** Кеш, логи, сесії, тимчасові зображення, каталоги .git і node\_modules, каталог копій самого модуля, а також каталоги копій інших модулів резервного копіювання та модуля оновлення.
- **Власні виключення.** Пропущені шляхи із символом підстановки (themes/\*/cache, \*\*/nazwa), пропущені типи файлів (наприклад zip, mp4, psd) і ліміт розміру окремого файлу.
- **Мініатюри та зображення товарів.** Окремі опції пропускають мініатюри зображень (їх можна згенерувати з оригіналів) або весь каталог зображень товарів, коли зображення мають власну копію.
- **Файли, змінені під час копії.** Файл, змінений, видалений або недоступний для читання під час копіювання, фіксується в журналі, а копія триває далі.

 ### Стиснення та поділ на файли

 - **Чотири рівні стиснення gzip** — без стиснення, легке, рекомендоване та найсильніше. Дані, які не стискаються (зображення, архіви), модуль сам записує без стиснення, заощаджуючи час.
- **Копія, поділена на файли** вибраного розміру (за замовчуванням 256 МБ, від 16 до 4096 МБ), завдяки чому надсилання можна відновлювати, а обмеження розміру файлу на хостингу не заважають. Підтримуються файли магазину більші за 2 ГБ.

 ## Розклад і автоматичні копії

 - **Профілі копій.** Кожен профіль має власний діапазон, розклад, місця призначення, правила видалення старих копій і шифрування — наприклад повна копія щодня і додатково лише база кожні кілька годин.
- **Розклад.** Лише вручну, кожні кілька годин (від 1 до 24 годин або кожні 2–7 діб), щодня, у вибрані дні тижня або раз на місяць (у коротшому місяці — в останній день), о годині в часовому поясі магазину.
- **Три способи запуску.** Адреса cron із секретним токеном (викликається кожні 5 хвилин, нова адреса одним кліком), командний рядок `php modules/pdbackupandrestorepro/cli.php` з командами cron, run і status — без обмеження часу — а також тригер із панелі для хостингів без cron, який запускає прострочену копію під час візиту працівника в панель.
- **Короткі кроки з відновленням.** Час одного кроку налаштовується від 5 до 120 секунд (рекомендовано 20). Після кожного кроку прогрес зберігається, а адреса cron сама викликає наступний крок; якщо сервер цього не дозволяє, копію продовжить наступний виклик cron.
- **Прогрес у реальному часі.** Індикатор прогресу, поточний етап і останні події. Закриття вкладки браузера не перериває копію, а кнопка «Зупинити» завершує її в найближчому безпечному місці.
- **Лише одне завдання одночасно.** Блокування в базі та блокування файлу не дозволяють, щоб два процеси (наприклад cron і вкладка браузера) виконували ту саму копію одночасно. Завдання, яке три рази поспіль не робить прогресу, завершується помилкою із зазначеною причиною.

 ## Де зберігати копії: диск, NAS, FTP, FTPS, SFTP, S3

 - **Інший каталог на цьому сервері** — другий диск або змонтований мережевий диск (NAS), поза каталогом магазину.
- **FTP і FTPS.** FTPS шифрує з’єднання та перевіряє сертифікат сервера (перевірку можна вимкнути для власного сервера із самопідписаним сертифікатом); пасивний або активний режим.
- **SFTP (SSH).** Вхід за паролем або приватним ключем (RSA у форматі PEM або ключ OpenSSH, також захищений паролем; ключі ed25519 там, де їх підтримує cURL хостингу), а також необов’язковий відбиток ключа сервера, завдяки якому модуль спілкується лише з правильним сервером.
- **Сховище, сумісне з S3.** Amazon S3, Backblaze B2, Wasabi, Cloudflare R2, Hetzner, OVH, MinIO та інші сервіси, сумісні з S3: адреса сервісу, регіон, bucket, каталог у bucket (кілька магазинів в одному bucket) і адресація bucket у шляху. Великі файли надсилаються частинами, а модуль ніколи не змінює налаштування самого bucket.
- **Тест з’єднання.** Кнопка «Тестувати з’єднання» записує, зчитує та видаляє тестовий файл, а коли сервіс це надає — показує вільне місце. Результат останнього тесту видно у списку місць призначення.
- **Надсилання з відновленням.** Копія надсилається до позначених місць по черзі та частинами; перерване надсилання відновлюється з місця, на якому зупинилося, а на серверах FTP, FTPS і SFTP розмір надісланого файлу порівнюється з оригіналом. Залишки копії, яку не вдалося надіслати, видаляються з місця призначення.
- **Скрипт відновлення разом із копією.** За замовчуванням до кожного місця поза сервером також потрапляє `pdrestore.php`, тож копію можна відновити навіть тоді, коли магазину та його панелі вже немає.

 ## Видалення старих копій (ретенція)

 - **У місцях призначення.** Кількість найновіших копій, що зберігаються в кожному місці, видалення копій, старших за вибрану кількість днів, а також довга історія за схемою день–тиждень–місяць: додатково найновіша копія з кожного з останніх днів, тижнів або місяців.
- **На цьому сервері.** Окрема кількість найновіших копій і окремий ліміт віку. За браку місця на диску профіль може видаляти копію із сервера, коли вона дійде щонайменше до одного місця призначення.
- **Що правила не видаляють.** Найновішу справну копію, копії, позначені як захищені (у списку копій або для всього профілю, наприклад знімки перед оновленням), і копію, з якої підготовлено відновлення. Старі копії видаляються лише після того, як нова копія дійде до місця.
- **Прибирання залишків.** Якщо профіль не зберігає копії на сервері, копії, завантажені для відновлення, зникають із сервера через тиждень, а з копій, які не вдалося надіслати, там залишаються дві найновіші. Видалення, перерване посередині, повторюється. Із копій, виконаних із командного рядка без профілю, на сервері залишаються сім найновіших.

 ## Шифрування копій і безпека

 - **AES-256 з контролем цілісності.** Кожен фрагмент копії шифрується алгоритмом AES-256 (режим CTR) і підписується HMAC-SHA256; ключ створюється з пароля через PBKDF2-SHA256 (200 000 ітерацій). Зашифрований також список файлів копії, тож назви файлів не видно.
- **Виявлення підміни.** Опис копії (маніфест) підписується, а кожен фрагмент пов’язаний із копією, файлом і місцем у файлі — підмінений, переставлений або підкладений з іншої копії фрагмент не пройде перевірку.
- **Пароль копії.** Щонайменше 12 символів, вводиться двічі, зберігається в зашифрованому вигляді й більше ніде не показується. Без пароля зашифровану копію не відновить ніхто, зокрема й автор модуля. Новий пароль стосується майбутніх копій.
- **Зашифровані дані входу.** Паролі та ключі місць призначення зберігаються в базі в зашифрованому вигляді й не повертаються у форму.
- **Каталог копій закритий для інтернету.** Під час встановлення модуль вибирає каталог поза публічною частиною сайту, якщо хостинг це дозволяє; інакше — папку з випадковою назвою та захисними файлами. Кнопка «Перевірити з інтернету» на інформаційній панелі перевіряє, чи можна завантажити файли з каталогу, а для nginx надає готове правило блокування.
- **Попередження в панелі.** Список профілів попереджає, коли незашифровані копії потрапляють поза сервер, а список місць призначення — коли місце SFTP не перевіряє ключ сервера.
- **Без з’єднань із серверами автора.** Модуль не надсилає дані автору й не запускає системні команди; поза власним магазином він з’єднується виключно з місцями призначення та адресою моніторингу, які ви самі налаштуєте.

 ## Перевірка копії та пробне відновлення

 - **Перевірка кожної копії.** Після створення копія знову зчитується, а суми SHA-256 усіх її фрагментів порівнюються із збереженими. У списку така копія має статус «перевірена».
- **Пробне відновлення.** Повне зчитування копії — розшифрування, декомпресія, перевірка архіву та підрахунок SQL-інструкцій відносно опису копії — без жодних змін у магазині. Копія, що зберігається лише поза сервером, для цього завантажується.
- **Нагадування.** Інформаційна панель позначає, якщо за останній місяць жодна копія не була повністю зчитана.

 ## Відновлення магазину з копії в панелі

 - **Майстер у трьох кроках.** Вибір копії, вибір того, що має повернутися, і підтвердження шляхом введення адреси магазину. До підтвердження нічого не змінюється.
- **П’ять діапазонів відновлення.** Усе, що є в копії; лише база даних; лише файли; вибрані таблиці; вибрані каталоги (наприклад themes/classic або img/p).
- **Спочатку поточний стан.** Рекомендована опція перед відновленням створює захищену копію того, що буде замінено — для зашифрованих копій зашифровану паролем профілю. Якщо відновлення виявиться помилкою, ви повернетеся до стану до нього.
- **Контроль перед стартом.** Вільне місце на диску, право запису в каталог магазину, відповідність префікса таблиць, версія PrestaShop, з якої походить копія, і пароль зашифрованої копії. Попередження показуються перед підтвердженням.
- **Безпечне виконання.** На час відновлення магазин закривається для клієнтів і відкривається наприкінці. Відновлення працює на окремій сторінці поза панеллю, бо сама панель у цей час замінюється; після переривання воно продовжується з місця, на якому зупинилося, а сторінка видаляється після завершення.
- **Файл налаштувань і вхід.** Файл налаштувань PrestaShop походить із копії, але зберігає з’єднання з базою поточного сервера. Після відновлення бази працівники входять обліковими записами з дня створення копії.
- **Копії поза сервером.** Копію, що зберігається лише в місці призначення, кнопка «Завантажити й перевірити» завантажує та відразу повністю зчитує, перш ніж використати для відновлення.
- **Копії з новішого сервера бази.** Під час відновлення копії, створеної на новішій версії MySQL або MariaDB, невідомі колації та видалені режими SQL замінюються відповідниками, а решта помилок повідомляється.
- **Перерване відновлення.** Відновлення, яке протягом 10 хвилин не подає ознак життя, можна покинути з панелі — магазин знову відкривається, а копії знову виконуються.

 ## Аварійне відновлення без панелі: pdrestore.php

 - **Один файл.** `pdrestore.php` можна завантажити з вкладки Відновлення; за замовчуванням він також лежить у кожному місці призначення поруч із копією.
- **Без PrestaShop.** Ви завантажуєте скрипт разом із файлами копії (назви, що починаються з pdbr-) до каталогу магазину й відкриваєте його в браузері. Якщо на сервері немає магазину, скрипт запитує дані бази даних.
- **Доказ доступу до сервера.** Скрипт створює поруч із собою файл із кодом, який потрібно переписати — ніхто сторонній, хто знає адресу скрипту, ним не скористається.
- **Відновлення та прибирання.** Після розриву з’єднання відновлення стартує з останнього завершеного кроку, а наприкінці скрипт видаляється із сервера однією кнопкою. Інтерфейс польською та англійською.

 ## Інформаційна панель: чи захищений магазин?

 - **Оцінка в одному реченні.** Наприклад «Магазин захищений. Остання копія від …, наступна запланована на …» або конкретна проблема: немає копії, невдала копія, занадто стара копія, cron не працює, немає місця поза сервером, каталог копій відкритий з інтернету.
- **Контрольний список.** Остання копія, її вік, розклад, cron, копія поза сервером, каталог копій, сповіщення та пробне відновлення — кожен пункт із кнопкою, що веде до місця, де його можна виправити.
- **Плитки, графік і події.** Остання справна копія, наступна копія, кількість копій на сервері (з їхнім розміром) і в кожному місці призначення, вільне місце на диску, графік розміру й часу останніх копій, а також останні події з журналу.
- **Чотири запитання на старт.** Що копіювати, де зберігати копії, коли і кого сповіщати — відповіді зберігаються в профілі. Нове місце призначення можна додати в процесі, а після вдалого тесту з’єднання ви повернетеся до запитань із уже позначеним цим місцем.
- **Тест середовища.** Версія PHP, розширення, ліміти часу й пам’яті, каталог копій і вільне місце на диску — з поясненням, що означає кожне обмеження.
- **Заголовок на кожній вкладці.** Остання справна копія, найближча запланована копія та стан захисту видно з кожної сторінки модуля.

 ## Сповіщення e-mail і моніторинг

 - **Тривоги.** E-mail, коли копія не вдалася; коли копія створена, але не дійшла до всіх місць призначення; коли профілю нікуди її надсилати; коли копія за розкладом не змогла розпочатися, а також коли протягом заданого часу (за замовчуванням 48 годин) немає вдалої копії.
- **Підтвердження.** Необов’язковий e-mail після кожної вдалої копії, із розміром і кількістю місць, де вона зберігається.
- **Одержувачі та мова.** Будь-який список адрес (порожнє поле = адреса e-mail магазину); повідомлення мовою за замовчуванням магазину, польською або англійською.
- **Адреса моніторингу (heartbeat).** Викликається після кожної вдалої копії, завдяки чому зовнішній сервіс моніторингу повідомить вас, коли копії перестануть створюватися. Налаштування показують, коли cron востаннє подавав ознаки життя, а інформаційна панель сигналізує, коли cron перестав викликати магазин.

 ## Список копій і журнал

 - **Список копій.** Профіль, вміст, розмір, тривалість, місця зберігання, результат перевірки та захист. Деталі копії: розмір до стиснення, кількість файлів і таблиць, шифрування, а також версії PrestaShop і модуля, які її створили.
- **Дії з копією.** Завантаження файлів копії на власний комп’ютер (із можливістю відновлення завантаження), нотатка, захист від автоматичного видалення, пробне відновлення, відновлення та видалення з усіх місць одразу.
- **Знайти копії в каталозі.** Копії, що лежать у каталозі копій, але відсутні у списку (наприклад перенесені з іншого сервера), додаються до списку однією кнопкою.
- **Журнал.** Кожен крок копії, надсилання та відновлення з читабельним, перекладеним повідомленням; фільтрація та завантаження журналу як текстового файлу. Завантаження копій, відновлення та відмова від відновлення — з іменем працівника — зберігаються два роки, решта записів — шість місяців.

 ## Відкритий формат копії

 - **Звичайні архіви .tar.gz.** Незашифровану копію відкриє будь-яка програма для архівів (7-Zip, WinRAR, tar), а база всередині як SQL-файли в каталозі db — копія не прив’язує до модуля.
- **Незалежні фрагменти.** Кожен файл копії складається з фрагментів, що стискаються та перевіряються окремо, завдяки чому копію, перевірку, надсилання та відновлення можна відновлювати після перерви.

 ## Права доступу, багато магазинів і видалення

 - **Права працівників.** Працівник із правом перегляду бачить копії, прогрес і журнал; запуск копій, завантаження файлів копії, відновлення та зміна налаштувань вимагають права редагування. Кожна дія в панелі перевіряє токен безпеки та права доступу.
- **Багато магазинів (multistore).** Копія охоплює всю інсталяцію PrestaShop — усі магазини одразу — а налаштування модуля є спільними для інсталяції.
- **Видалення.** Видаляє налаштування модуля, розклади та історію копій. Файли копій на диску та в місцях призначення залишаються.

 ## Вимоги та сумісність

 - **PrestaShop 1.7.0–9.x, PHP 7.0–8.5 (64-бітний), MySQL 5.6+ або MariaDB 10+.**
- **Розширення PHP.** zlib (стиснення, обов’язково), OpenSSL (шифрування копій і захист даних входу), cURL (FTP, FTPS, SFTP, S3, перевірка каталогу копій з інтернету та адреси моніторингу); SFTP вимагає cURL, зібраного з підтримкою SFTP. Налаштування mbstring.func\_overload має бути вимкнене.
- **Невеликі вимоги до пам’яті.** Сам рушій копіювання потребує близько 20 МБ пам’яті; короткий ліміт часу запиту не заважає.
- **Без залежностей.** Без Composer, без доданих бібліотек, без exec і команд оболонки.
- **Мови.** Інтерфейс модуля, e-mail і скрипт відновлення польською та англійською.

 ## Важливі межі роботи (версія 1.0)

 - Відновлення за іншою адресою магазину або до бази з іншим префіксом таблиць не підтримується — модуль відмовляє перед першою зміною.
- Кожна копія є повною копією свого діапазону; інкрементні копії недоступні.
- Серед місць призначення немає Google Drive або Dropbox.
- Відновлення не видаляє файли або таблиці, які з’явилися в магазині після створення копії.
- Подання, тригери та процедури повертаються лише при відновленні всієї бази.
- Копія бази, що виконується через адресу cron або браузер, створюється в багатьох коротких кроках; для магазину з великим трафіком рекомендовано опцію закриття магазину на час копіювання бази або запуск копії з командного рядка.
- Копії за розкладом вимагають cron; тригер із панелі є аварійним виходом, що залежить від візитів працівників.
- Аварійний скрипт потребує файлу опису копії (назва закінчується на .manifest.json).
- Видалення залишає в каталозі магазину файли розпочатого й незавершеного відновлення (pdbr-restore-\*) — їх потрібно завершити, покинути в панелі або видалити вручну.
- Журнал протягом двох років зберігає імена працівників, які завантажили копію або відновили магазин — це варто врахувати в реєстрі операцій обробки персональних даних.

## Features

| Feature | Value |
| --- | --- |
| Підтримка Prestashop 9.x | Так |
| Підтримка Prestashop 8.x | Так |
| Підтримка Prestashop 1.7.x | Так |
| Модульні переклади | EN, ENG |
| Безкоштовна підтримка | Так |
| Безкоштовні оновлення (1 рік) | Так |

## Categories

- Імпорт і експорт даних
- Безпека, cookies та нормативні вимоги
- Модулі PrestaShop
