Объединенный Открытый Проект - Сайт для Настоящих Компьютерщиков

Объединенный Открытый Проект

Сайт для Настоящих Компьютерщиков

; Логин:
  Пароль:
Обычный
Безопасный
Запомнить пользователя



Зарегистрироваться
Забыли пароль?
 
 
 
Объединенный Открытый Проект »   Сети и администрирование »   Скрипт резервного копирования нескольких баз
RSS

Скрипт резервного копирования нескольких баз

Текущий рейтинг темы: Нет

<<Назад  Вперед>>Модераторы: Stelth, wsxПечать
 
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик

Откуда: Москва
Всего сообщений: 2994
Рейтинг пользователя: 79





Дата регистрации на форуме:
29 сен. 2001
Иногда бывает нужно повесить на cron резеврное копирование нескольких баз так, чтобы в любой момент времени была доступна не только самая последняя копия, но и несколько предыдущих. Сделать это можно, например, вот таким скриптом:


#!/bin/sh



####################################

#  Simple database backup and rotate script

# © 2007, XXXX Pro, United Open Project

# http://www.openproj.ru

####################################



BACKUP_COUNT=5;  # количество backupов, которые нужно хранить

CHARSET='cp1251'; # кодировка базы данных

USER='root';   # логин, от которого подключаемся

PASSWORD='*********'; # пароль

BASES='vgd vgd_forum'; # список баз для backup, разделенных пробелом



for base in $BASES; do



echo 'Dumping base '$base'...';

mysqldump -K -e --default-character-set=$CHARSET -u $USER -p$PASSWORD $base>$base'0.sql'



if [ -s $base'0.sql' ]; then #если снятие дампа прошло успешно

  BACKUP=$BACKUP_COUNT;



  echo 'Compressing and rotating backups...'

  gzip $base'0.sql'

  if [ -f $base$BACKUP.sql.gz ]; then

    unlink $base$BACKUP.sql.gz

  fi;



  while [ $BACKUP -gt 0 ]; do

    let BACKUP_OLD=BACKUP-1

    if [ -f $base$BACKUP_OLD.sql.gz ]; then

      mv $base$BACKUP_OLD.sql.gz $base$BACKUP.sql.gz

    fi;

    BACKUP=$BACKUP_OLD;

  done

else

  echo 'Backup failed! No backups rotated!';

fi

done



echo 'Done all!';



В итоге получаются файлы вида имя_базы_номер.sql.gz, при этом самый новый файл имеет номер 1.

---
Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
wsx
Модератор раздела
Юниксойд, сетевик
wsx
Откуда: Казань
Всего сообщений: 1074
Рейтинг пользователя: 28

Репутация пользователя: 1




Дата регистрации на форуме:
14 янв. 2005
у меня обычно вид

dbName_`date`.tar.gz
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик

Откуда: Москва
Всего сообщений: 2994
Рейтинг пользователя: 79





Дата регистрации на форуме:
29 сен. 2001
Неудобно — старые backups придется стирать вручную или же извращаться с "выкусыванием" частей даты...

---
Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
wsx
Модератор раздела
Юниксойд, сетевик
wsx
Откуда: Казань
Всего сообщений: 1074
Рейтинг пользователя: 28

Репутация пользователя: 1




Дата регистрации на форуме:
14 янв. 2005
Ну это не проблема. да и я сейчас стараюсь придерживаться правилу - не стирать бекапы вообще. Тоесть есть сервер резервного копирования, на него всё складывается. раз в квартал например все бекапы записываются на ДВД и удаляются - тоесть начинается новый цикл. Хотя, если базы большие, то да - хранить это всё геморойно.
<<Назад  Вперед>>Модераторы: Stelth, wsxПечать
Объединенный Открытый Проект »   Сети и администрирование »   Скрипт резервного копирования нескольких баз
RSS
Быстрый переход в раздел:


Время выполнения скрипта: 0.0198. Количество выполненных запросов: 17, время выполнения запросов 0.0086