Простий спосіб автоматичного створення бекапу joomla сайтів за допомогою Akeeba backup Crontab

Всім привіт. Хочу описати процес повністю автоматичного створення резервних копій сайтів на CMS Joomla за допомогою компонента Akeeba backup, причому його безкоштовної версії. Знаю, що джумлу на хабрі не особливо шанують, але думаю все ж таки знайдуться хабровчани, які створюють сайти з її допомогою. Як приклад використовуватимуJoomla 2.5.16Перш за все нам потрібно встановити компонент Akeeba Backup. Завантажити його можна звідси: www.akeebabackup.com/downloads/akeeba-backup.html

Мій сайт знаходиться на хостингу timeweb, але я думаю, що більшість хостингів мають у своїй панелі управління спосіб створювати завдання за допомогою планувальника crontab. Якщо ваш сайт знаходиться на власному сервері, тут ще простіше.

Насамперед нам необхідно активувати можливість робити бекап не лише з панелі Joomla. Для цього переходимо доКомпоненти -> Akeeba backup -> Component Parameters. Потрібно встановити перемикач наТАякEnable front-end and remote backup. Вказати секретне слово, яке буде використовуватися для генерації посилання, можна включити оповіщення по e-mail про виконання бекапа.

простий

Тепер необхідно написати невеликий shell скрипт, який запускатиметься планувальником Crontab. Виглядає він так:

Цей скрипт здійснює бекап нашого сайту.

Після цього необхідно вказати планувальнику Crontab періодичність бекапа. Для хостингу timeweb це робиться так:Панель Crontab. Далі вибратиДодати нове завданняПишемо назву нашого завдання, тип файлу:SH сценарій, вказуємо шлях до файлу на нашому сервері (природно файл зі скриптом має бутизаздалегідь залитий на сервер), та й вибираємо необхідну нам періодичність бекапа.

спосіб

Якщо у вас є повний доступ до сервера, на якому розташовується сайт, то потрібно занести рядок у конфіг crontab, за умовчанням розташований у /etc/ з ім'ям crontab

Все, тепер наші бекапи робитимуться в автоматичному режимі за розкладом і складатимуться в каталог, прописаний у налаштуваннях компонента Akeeba Backup. За замовчуванням:administrator/components/com_akeeba/backup/

Щоб відновити сайт або перенести його на інший сервер, необхідно завантажити набір файлів під назвою Akeeba Kickstart: www.akeebabackup.com/downloads/akeeba-kickstart.html

Цей набір включає наступні файли:

  • jquery.min.js-бібліотека Jquery
  • json2.min.js-бібліотека Json
  • kickstart.php-PHP скрипт, що виконує відновлення
  • ua-RU.kickstart.ini-мова локалізації

Ну і створюємо за аналогією завдання у cron під запуск скрипту

Хардкорна конфа за С++. Ми запрошуємо лише профі.

Читають зараз

Робота з Veeam Availability Console: налаштування керованого резервного копіювання Managed Backup Services

Коментарі 13

Бувало багато випадків, коли у людей тривалий час працював автоматичний бекап. Ось він працює місяць два, рік і всі задоволені, але резервними копіями ніколи не користувалися - не було потреби. Випробували один раз на самому початку і заспокоїлися. А коли потреба прийшла (на сервері зламався гвинт), то виявилося, що численні файли бекапу створювані роками насправді повне фуфло — з них не можна відновити. Наприклад, десь у середині експлуатації закінчилося місце під бекапи і вони виходилинульової довжини. Або провайдер оновив версію якоїсь бібліотеки на сервері і вона стала працювати трохи не так, а її викликала функція створення бекапу... Провайдер змінив версію PHP або SQL, а модуль архівації з ними не був відтестований... На сайті може раптом виявився вірус, який вразив і систему архівування… Та мало що…

Тому я говорю, що добре було б мати в запасі розгорнуту копію реального сервера. Ну чи принаймні раз на місяць намагатися витягти з бекапу - дай боже щоб витяглося ...

Мав справу з дампом сайту через Akeeba - являв собою zip (дамп) + php (розпакувальник). Кікстарт розгорнути дамп не подужав і падав з помилкою, zip вдалося розкрити тільки модулем TotalCommander'а - 7zip, WinRAR і вбудований у Win7 zip-модуль бачили лише частину файлів. Отака класна штука.

Так що ми краще як-небудь по-старому: rsync + rdiff-backup

Сьогодні налаштував Akeeba backup. Є кілька зауважень, точніше доповнень до статті:

1) Якщо в налаштуваннях встановити ZIP формат архіву ( у мене joomla 3.2 і остання версія akeeba backup), то архів розгортається так: а) створюємо на потрібному сервері http папку, наприклад /srv/www/htdocs, в яку копіюємо zip архів з бакапом б) розпаковуємо в папці архів так - unzip backup.zip в) створюємо порожню базу даних, користувача з паролем та правами доступу до бази на нашому новому сервері г) просто входимо на сайт www .site.com і бачимо, що з розпакованої папки installation автоматично запустився установник, а це означає, що не потрібно використовувати kickstart, завантажуючи його для відновлення. Архів містить у собі все. Не забуваймо налаштувати на сервері індекс для обробки файлу index.php за замовчуванням. Наприклад, для nginx - додамо до конфіг index index.php, алегадаю, що це не потрібно розжовувати.

2) akeeba backup коштує 40 $ чи євро, не пам'ятаю. Його можна використовувати безкоштовно, але тоді немає автоматизації по відправці архівів на амазон, наприклад. Мені на амазон і не треба. Мені потрібно, щоб бакапи копіювалися на сторонній сервер, щоб, якщо впаде основний сервер, наприклад, за допомогою rm -fr від кореня, то я міг би використовувати архів зі свого другого сервера. Що робити? Відповідь тут: а) на другий сервер (адже у нас там юнікс, лінукс чи не так? ) Копіюємо з akeeba сайту remote cli, спеціальний файл, який вміє коннектитися до основного сайту. б) налаштовуємо крон 0 3 * * * /backups/get_backup.sh > /dev/null 2>&1 вміст файлу get_backup.sh

#!/usr/bin/sh cd /backups /usr/bin/php remote.phar --action=backup --host=http://www.site.com --secret=mysecretfromsite - -profile=1 --download --dlmode=http --dlpath="/backups/"

в) далі, не забуваємо зробити chmod +x для /backups/get_backup.sh та ручками запускаємо його для тестування. У випадку лайки, не забуваємо, що потрібно додати необхідні бібліотеки для php і прописати папку /backups в PEAR для php.ini

Власне, все. Як це працює: 1) Сервер 2 коннектиться до сервера 1 і створює на сервері 1 згідно з профілем 1 (це описано в статті вище) бакап. 2) Далі сервер 2 завантажує в папку /backups сервера 2 архів з сервера 1, який щойно був створений

Ура. Ми маємо в папці /backups архіви кожного дня. Як видаляти старі, не описуватиму, мені це не потрібно. Нехай собі мешкають. Скрипт на шеле, думаю легко написати за допомогою гугла.

«Знаю, що джумлу на хабрі не особливо шанують, але думаю все ж таки знайдуться хабровчани, які створюють сайти з її допомогою.»

І при цьому за статистикою Joomla! у лідерах зствореним сайтам на цій CMS.

Це з якогось переляку! Добре вішати ярлики! Я просто промовчу про 1еС.

Версії 3.3 та 2.5 просто подарунок.

Дякую за солюшен.

Вітаю! Допоможіть мені розібратися зі скриптом копіювання на яндекс диск. Скрипт Бекапа зробив таким

і зберіг у файлі skript.php, після чого вказав на хостингу в Cron

погуглить методи, відповідальні роботу php з файлової системою. Перейти за допомогою даних методів до каталогу, де зберігаються бекапи. Зробити цикл перебору всіх файлів-бекапів, і для кожного застосовувати curl Вийде щось типу цього:

Докладніше можна почитати тут