Сайт Романа ПарпалакаБлог201108

Простое резервное копирование

3 августа 2011 года, 20:12

Давайте я вам расскажу, как работает резервное копирование (бекап) на моем сервере. Самая ценная информация хранится в базе данных. Помимо этого есть еще код движка в репозитории subversion, который бы не хотелось потерять. Их и будем архивировать.

Поскольку объем данных небольшой, в пределах нескольких мегабайт, а гигабайты свободного места в почтовом ящике пустуют, там я и решил хранить резервные копии.

Сначала напишем небольшой скрипт, архивирующий данные и отправляющий их на почту. Вот что у меня получилось:

#!/bin/bash
DATE="`date +%Y-%m-%d_%H-%M-%S`"
SVN="s2-backup_$DATE.svn.7z"
MYSQL="mysql-backup_$DATE.sql.7z"

svnadmin dump /path/to/project -q | 7za a -si -p123asd $SVN
mysqldump -ubackup -p123asd --all-databases | 7za a -si -p123asd $MYSQL

echo Backups for $DATE | biabam $SVN,$MYSQL -s "Backups $DATE" mail@example.com

[ -n "$1" ] && [ "$1" = delete ] && ( rm $SVN ; rm $MYSQL )

Сразу замечу, что «123asd» нужно заменить в каждом месте на правильный пароль.

В первых трех строчках мы составляем из текущей даты имена файлов с архивами.

В следующих двух строчках архивируем репозиторий и дамп базы данных. Тут нужно вписать правильный путь до репозитория subversion, а также имя и пароль существующего пользователя базы данных. Используемые здесь архивы 7z компактнее zip, gz и др. На архивы нужно поставить пароль подлиннее, чтобы избавиться от симптомов паранойи по поводу хранения конфиденциальной информации на серверах Гугла.

В предпоследней строчке мы отправляем архивы на электронную почту (не забудьте вписать свою). Программа biabam (вообще-то, это не полноценная программа, а bash-скрипт) отправит наши архивы как прикрепленные файлы.

Последнюю строчку я добавил для управления судьбой созданных архивов после отправки письма. Чтобы их удалить, скрипт нужно вызывать с параметром delete. Этот параметр используется при автоматическом запуске скрипта с помощью cron (параметры ниже соответствуют ночному запуску два раза в неделю):

15  3   *   *   0,3  ~/backup/backup.sh delete > /dev/null

В этом случае нужно удалять файлы, чтобы не занимать место на сервере. А если перед ответственными манипуляциями я запускаю скрипт без параметров, архивы не удаляются, и в случае необходимости данные можно сразу же восстановить.

Вы можете взять этот пример за основу и добавить архивирование другой ценной информации.

    Оставить комментарий

Формирование вкуса

24 августа 2011 года, 01:36

Когда бизнес-линч только открылся, я часто не понимал рецензентов. Смотришь на работу — вроде нормальная, а комментарии, мягко говоря, критические.

А сейчас открываю очередную рецензию и думаю: «Ну вааще пиздец». Включаю комментарии и вижу слова Тёмы: «Это полный пиздец».

    Оставить комментарий

Развитие сюжета

24 августа 2011 года, 11:27

В прошлом году я опубликовал несколько кишиневских фотографий. На одной из них было дерево, вокруг которого проложена тропинка:

Так вот, этого дерева уже нет:

    2 комментария

← сюда туда →

Поделиться
Записи