Фотогалереи

Помощь при использовании сайта

Бэкап сервера и баз данных MySQL

Замучался я постоянно из шела с вводом пароля бэкапить БД и директорию с сайтом решил автоматизировать это дело. Все предельно просто, пишем примерно вот такой скрипт (пути и переменные можете ставить какие вам удобнее)

#!/bin/bash 
# Пишем имя хоста с которого будем делать бэкап 
HOSTNAME=localhost 
# имя пользователя БД, не помню почему но если пароль прописать в скрипте то доступ есть только # руту. Восстанавливать то все равно от суперпользователя так что указываем root.
DBUSER=root 
# Указываем переменную директория куда будут ложиться сами бэкапы (у меня их 2)
DIRECTORY=/media4/Linux/Backup/Server/MySQL DIRECTORY1=/media4/Linux/Backup/Server/Apache 
# Переменная с именем базы данных 
DBNAME=wordpress DBNAME1=jabber 
# Аналогично, переменная значение которой ваш пароль суперпользователя (не root системы # а root  пароль для подключения к серверу MySQL
MySQL DBPASS=yourpassword 
# Переменная которая будет добавлять день и месяц бэкапа 
DATE=`date +%d-%m`
# Переменная указывающая на директорию с файлами сервера (сайта) 
SRV=/srv/http 
# Сама команда дампа БД 
mysqldump -h $HOSTNAME -u $DBUSER -p$DBPASS $DBNAME > $DIRECTORY/Wordpress-$DATE-restyle.sql 
# Подождем малость :)
sleep 2
 
# Аналогично первому
mysqldump -h $HOSTNAME -u $DBUSER -p$DBPASS $DBNAME1 > $DIRECTORY/Jabber-$DATE.sql
# Курим  sleep 2
# Переходим в директорию сервера
cd $SRV
# Тарим и жмем все что в этой директории есть
sudo tar -cvjpf $DIRECTORY1/Server-$DATE.tar.bz2 .
# Ну вот собственно и все, пути как сказал выше подправите  Далее даем права на #выполнение и по желанию суем скрипт в крон.  Восстановить БД можно так:
sudo mysql -u root -pSuperPassword mydb < mydb.sql
#Где mydb это имя восстанавливаемой БД, mysql.sql сам файл ранее сохраненного бэкапа БД  

Что еще... Вроде все

3
2 голосов
Ваша оценка: Нет


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".
Аватар пользователя admin

Желание если есть, то конечно пиши. Я не писал по этой теме так как в разных дистрибутивах все существенно отличалось, да и без бубна не обходилось.

Аватар пользователя dimka3210
admin пишет:

Желание если есть, то конечно пиши. Я не писал по этой теме так как в разных дистрибутивах все существенно отличалось, да и без бубна не обходилось.

Ух, а мне то как это далось )))) 4 - ро суток. Я ведь до этого Linux даже в глаза не видел ))).

Аватар пользователя anonymous

Вопрос: если к названию архива не добавлять дату, а написать просто
sudo tar -cvjpf $DIRECTORY1/Server.tar.bz2 * ,
то при каждом бэкапе архивы просто будут заменяться? У меня каждый бэкап весит 22,5 гига, так было бы удобнее...

Аватар пользователя admin

Да, так они будут перезаписываться. Но лучше делать не

sudo tar -cvjpf $DIRECTORY1/Server.tar.bz2 *

а

sudo tar -cvjpf $DIRECTORY1/Server.tar.bz2 .

Так как файлы начинающиеся с точки с выборкой "*" не будут архивироваться.