Bash скрипт бэкапа Joomla

Автор: Admin

Дата:2013-07-22

Бэкап Joomla - скрипт

Для поддержания сайта на Joomla да еще и на своем сервере появляется необходимость производить бэкап Joomla, по заданному расписанию.
Бэкап joomla включает в себя создание резервной копии базы банных Mysql и самого сайта размещенного на Веб сервере.

Отсюда выделим 2 пути бэкапа:

1) Бэкап базы банных в Mysql

Для этого будем использовать специальную утилиту mysqldump, а пример ее использования приведен ниже
#mysqldump -u root -p'ВАШ_Пароль' Имя_Базы_Данных > /local/backup-nfs/joomla3/sql/backup-date.gz

2) Бэкап файлов Joomla, шаблонов, расширений (ВСЕГО)

Будем предполагать, что мы используем веб сервер APACHE, а сам сайт на Joomla расположена в /var/www/html
# rsync -avz /var/www/html /local/backup-nfs/joomla3/day/
Получили две команы которые производят бэкап базы данных Mysql и всего сайта.
В принципе все это можно объединить и создать самый простой скрипт или даже набор команд

vi /local/sh/backup-joomla.sh
Поместить туда следующее

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
mysqldump -u root -p'ВАШ_Пароль' Имя_Базы_Данных > /local/backup-nfs/joomla3/day/sql/bases.txt && rsync -avz -/var/www/html /local/backup-nfs/joomla3/day/


Добавим право на выполние скрипта и поместим в CRONTAB.

#chmod +x /root/sh/backup-joomla-day.sh
# crontab -e
Добавим запись на выполение в 5 часов 50 минут.
50 5 * * * /root/sh/backup-joomla-day.sh

Как видите в создании бэкапа для Mysql нет ни чего сложного, но тем неменее это не совсем правильное решение. На самом деле необходима нормальная программа для копирования баз Mysql, которая могла бы создавать копии со сжатием, бэкапить их с  датой, удалять копии старше N Дней, а так же отсылать письма об успешном бэкапе. 
Решением может быть handy backup, купить программу можно в Интернет, отличительной особенностью данной программы является то, что она рассчитана для Windows бэкапа Mysql, но можно использовать и в Linux дистрибутивах при помощи WINE.

Но мы можем и самостоятельно создать скрипт в Linux дистрибутиве на BASH.

Давайте же создадим боле менне нормальный скрипт Бэкапа Mysql и Joomla.

Скрипт Бэкапа Joomla

#!/bin/bash
#################################################################
############# Бэкап Mysql #########################################
#################################################################

user="root"
pass="passw!"
host="localhost"
bases="bases1"
backup_dir="/local/backup-nfs/joomla3/sql/"
remove_old_files=7
date=$(date +%d-%m-%Y-%H:%M)

        for i in $bases; do
        file=$backup_dir/backup-$i-$date.gz
        mysqldump -u $user -h $host -p$pass $db | gzip -9 > $file

        done

#Удаляет файлы старше 7 дней
        find $backup_dir -type f -mtime +$remove_old_files -exec rm {} \;
#Отправляет письмо об успечном создании файла архива базы
        echo "and_touch_file:"$file"" | mutt -s "$date-"backup-joomla-sql-OK"" -- user_mail@mail_domen

#################################################################
############# Бэкап Joomla ########################################
#################################################################

file2=Arch_Joomla_from_$date.tar.gz
src="/var/www/html"
dst=/local/backup-nfs/joomla3/$file2

tar -czf $dst $src 2> /dev/null

find $dst -type f -mtime +$remove_old_files -exec rm {} \;

echo "touch_Arch_Joomla:"$file2"" | mutt -s "$date-"backup-JoomlaFiles-OK"" -- user_mail@mail_domen

Количество просмотров: 4071

Комментарии к статье:

Добавить комментарий

Введите сумму с картинки

© Plutonit.ru - Администрирование, настройка Linux и Windows 2009 - 2024