Дата:2013-07-22
Для
поддержания сайта на Joomla да еще и на своем сервере появляется
необходимость производить бэкап Joomla, по заданному расписанию.
Бэкап joomla включает в себя создание резервной копии базы
банных Mysql и самого сайта размещенного на Веб сервере.
Отсюда выделим 2
пути бэкапа:
Для этого будем использовать специальную утилиту mysqldump, а
пример ее использования приведен ниже
#mysqldump -u root
-p'ВАШ_Пароль' Имя_Базы_Данных >
/local/backup-nfs/joomla3/sql/backup-date.gz
Будем предполагать, что мы используем веб сервер 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
Комментарии к статье:
Добавить комментарий