Лесен начин за автоматично архивиране на joomla сайтове с помощта на Akeeba backup Crontab
Здравейте всички. Искам да опиша процеса на напълно автоматично създаване на резервни копия на сайт в CMS Joomla с помощта на компонента за архивиране на Akeeba и неговата безплатна версия. Знам, че Joomla не е особено предпочитана на Хабре, но мисля, че все още има хабровци, които създават сайтове с нейна помощ. Ще използвамJoomla 2.5.16 като примерПърво, трябва да инсталираме компонента Akeeba Backup. Можете да го изтеглите от тук: www.akeebabackup.com/downloads/akeeba-backup.html
Моят сайт се хоства от timeweb, но мисля, че повечето хостове имат начин в контролния си панел да създават задачи с помощта на планировчика на crontab. Ако вашият сайт е на собствен сървър, е още по-лесно.
На първо място, трябва да активираме възможността да правим резервни копия не само от панела на Joomla. За да направите това, отидете наКомпоненти -> Архивиране на Akeeba -> Параметри на компонента. Трябва да зададете бутона за избор наДАв свойствотоРазрешаване на преден край и отдалечено архивиране. Посочете тайната дума, която ще се използва за генериране на връзката, по желание можете да активирате известия по имейл за архивирането.

Сега трябва да напишем малък 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 скрипт, който извършва възстановяването
- en-RU.kickstart.ini-език за локализация
Е, по аналогия създаваме работа в cron за изпълнение на скрипта
Hardcore conf в C++. Каним само професионалисти.
Чете сега
Работа с Veeam Availability Console: Конфигуриране на услуги за управлявано архивиране
Коментари 13
Има много случаи, когато хората са имали автоматично архивиране, работещо дълго време. Тук работи два месеца, година и всички са доволни, но никога не са използвали резервни копия - нямаше нужда. Пробвахме веднъж в самото начало и се успокоихме. И когато дойде нуждата (счупи се винт на сървъра), се оказа, че многобройните архивни файлове, създадени през годините, всъщност са пълни глупости - оказа се, че е невъзможно да се възстанови от тях. Например, някъде по средата на работа, мястото за резервни копия свърши и те се оказаханулева дължина. Или доставчикът актуализира версията на някаква библиотека на сървъра и тя започна да работи малко по-различно и беше извикана от функцията за създаване на резервно копие... Доставчикът промени версията на PHP или SQL и модулът за архивиране не беше тестван с тях...В сайта може внезапно да се появи вирус, който да удари и системата за архивиране... Но никога не се знае...
Затова казвам, че би било добре да имате на склад разгърнато копие на истинския сървър. Е, или поне веднъж месечно опитайте да извлечете от резервното копие - не дай Боже да бъде извлечено ...
Справих се с дъмп на сайт чрез Akeeba - беше zip (дъмп) + php (разопаковчик). Kickstart не можа да разположи дъмпа и се срина с грешка, zip можеше да се отвори само от модула TotalCommander - 7zip, WinRAR и вграденият в Win7 zip модул видяха само част от файловете. Това е толкова готино нещо.
Така че е по-добре да използваме старомодния начин: rsync + rdiff-backup
Днес настроих архивиране на Akeeba. Има няколко забележки или по-скоро допълнения към статията:
1) Ако зададете ZIP архивен формат в настройките (имам joomla 3.2 и най-новата версия на akeeba backup), тогава архивът се разгръща така: a) създайте папка на необходимия http сървър, например /srv/www/htdocs, в която копираме zip архива с резервно копие b) разархивирайте архива в папката по този начин - разархивирайте backup.zip c) създайте празен база данни, потребител с парола и права за достъп до базата данни на нашия нов сървър d) просто отидете на www.site.com и вижте, че инсталаторът автоматично стартира от разопакованата инсталационна папка, което означава, че не е необходимо да използвате kickstart, за да го изтеглите за възстановяване. Архивът вече съдържа всичко в себе си. Не забравяйте да настроите индекс на сървъра за обработка на файла index.php по подразбиране. Например за nginx - добавете индекс index.php към конфигурацията, ноНе мисля, че трябва да се дъвче.
2) архивирането на akeeba струва $40 или евро, не помня. Може да се използва безплатно, но тогава няма автоматизация за изпращане на архиви до Amazon например. Нямам нужда от Amazon. Имам нужда архивите да бъдат копирани на сървър на трета страна, така че ако главният сървър се повреди, например с rm -fr от root, тогава мога да използвам архива от втория си сървър. Какво да направя? Отговорът е: a) на втория сървър (имаме Unix, Linux, нали?) копирайте отдалечения cli от сайта на akeeba, специален файл, който може да се свърже с основния сайт. b) конфигурирайте cron 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/"
c) освен това, не забравяйте да направите chmod +x за /backups/get_backup.sh и да го стартирате ръчно за тестване. В случай на злоупотреба, не забравяйте, че трябва да добавите необходимите библиотеки за php и да регистрирате папката /backups в PEAR за php.ini
Всъщност всичко. Как работи: 1) Сървър 2 се свързва със сървър 1 и създава резервно копие на сървър 1 според профил 1 (това е описано в статията по-горе). 2) След това сървър 2 изтегля архива от сървър 1, който току-що е бил създаден, в папката /backups на сървър 2
Ура. Имаме архиви за всеки ден в папката /backups. Няма да описвам как се изтриват старите, не ми трябват. Нека живеят. Скриптът е на shell, мисля, че е лесно да се напише с помощта на Google.
„Знам, че Joomla не е особено предпочитана на Habré, но мисля, че все още има хабровци, които създават сайтове с нейна помощ.“
И в същото време, според Joomla! начело всъздадени сайтове на тази CMS.
Какъв страх! Добре е да се етикетира! Само за 1еС ще замълча.
Версии 3.3 и 2.5 са просто подарък.
Благодаря за решението.
Здравейте! Помогнете ми да разбера скрипта за копиране на Yandex диск. Скрипт за архивиране, направен по този начин
и го запази във файла skript.php, след което посочи хостинга в Cron
Google методите, отговорни за работата на php с файловата система. Използвайки тези методи, отидете до директорията, където се съхраняват архивите. Направете цикъл през всички архивни файлове и приложете curl за всеки Ще се получи нещо подобно:
Можете да прочетете повече тук