"Стежок вчасно, варто дев'яти", виходить стара приказка. У світі комп'ютерів ми говоримо про те, що стежок, як резервне копіювання. При запуску виробництва ІТ-інфраструктури, вкрай важливо, що ми досягнемо працює на наших серверах і в додатках, як майже сто відсотків, як це можливо. Хоча Є кілька способів зробити ІТ-інфраструктуру твердий, це неможливо зробити це доказом провалу. Тому ми робимо план B.
Сервери зроблені з трьох широких верств - апаратних засобів, операційної системи і додатків і даних. У разі апаратного збою вона досить проста для заміни машин з новою. Установка операційної системи і додатків теж досить простий. Частина, яка буде важко замінити це дані, а конфігурації, що Ваші заявки використання. У разі невдачі це частина, яка не може бути замінений. Так що ми, що резервне копіювання даних на регулярній основі. Ми назад її таким чином, що вона стає легко одержати у разі надзвичайної ситуації.
Я буду вести Вас шляхом написання сценарію приймати щоденні резервні копії на вашій системі. Для цієї роботи я буду використовувати сервер під керуванням веб-сервера Apache, MySQL сервером баз даних і каталогів по / Головна розділ, який містить деякі дані, які необхідно резервувати. Ми будемо також резервного копіювання напередодні Apache журналів доступу в окрему резервну копію каталогу. По-перше, нам потрібно створити каталог, де наші архіви будуть проживати. В рамках цієї роботи я створив каталог BACKUP об / вибрати розділ. Ми будемо організовувати резервне копіювання в цей каталог так, що кожна днів резервного копіювання знаходиться в каталозі сформували подібне - / виключити / BACKUP / рік / місяць / ДАТА /. Так, на 11 серпня 2008 року резервні копії будуть йти в / opt/BACKUP/2008/08/11 /. Давайте створювати ці каталоги. Запуск наступного набору команд як корінь користувача.
# Mkdir-п / opt/backup/DATA/2008
# Кд / opt/backup/DATA/2008
# Mkdir 01 02 03 04 05 06 07 08 09 10 11 12
# Кд / виключити / резервне копіювання / DATA /
# CP-R 2008 2009
# Кд / виключити / резервне копіювання /
# CP-R ДАННИМІ ВХІД
Див. примітку нижче до видачі цієї останньої команди.
# Chown-R calvin.calvin / виключити / резервного копіювання
Зараз у нас є два види резервного копіювання директорій - один для даних, а інший для лог-файли. Що резервні копії каталогів створюються в даний час ми готові почати писати сценарій. Примітка: Я використовую користувачів Calvin всієї цієї статті. Прохання замінити Кальвін з вашим власним ім'ям користувача.
################################################## #########
# Код починається тут
################################################## #########
#! / BIN / Bash
# Сервер резервного копіювання даних, v1.0
#########################
# BACKUP CONFIG
#########################
# Налаштування місяць, дата і день
Рік = `Дата +"% Y "` # 2008
Місяць = `Дата +"% M "` # 11
В день = `Дата +"% D "` # 14
ВЧОРА = `дата-дата =" вчора "+% Y-% M-%` # D 2008-11-13
YESTERDAY_DATE = `дата-дата = вчора +% D` # 13
YESTERDAY_MONTH = `дата-дата = вчора +% м` # 11
YESTERDAY_YEAR = `дата-дата = вчора +% Y` # 2008
СЬОГОДНІ = `сьогоднішній день +% Y-% M-%` # D 2008-11-14
TODAY_DATE = `сьогоднішній день +% D` # 14
# Каталоги для резервного копіювання на
DATA_BACKUP_PARENT_DIR = / виключити / резервне копіювання / DATA / # <- Змінити цю резервну копію ваших даних реж
LOG_BACKUP_PARENT_DIR = / виключити / резервне копіювання / LOG / # <- Змінити цей ваш журнал архівації реж
# Apache документі кореневий каталог
APACHE_DOCROOT = / VAR / WWW / HTML /
# MySQL базу даних конфігурації
DB_IP = "локальний" # <- Змінити цю IP вашого сервера баз даних
DB_USER = "Кальвін" # <- Зміна цієї вашої базі даних ім'я користувача
DB_PASS = "calvin_password" # <- Змінити це Ваша база даних паролем
DB_NAME = "clientlist" # <- Змінити це ваша база даних найменування
# Apache журналу реж
APACHE_LOG_DIR = "/ VAR / Журнал / HTTPD /" # <- Змінити це шлях даних ваших журналів
# Застосування Files' Dir
APP_FILES = "/ головна / Келвін / application_files /" # <- Змінити це шлях до каталогу даних
# Config Dir
CONFIG_DIR = "/ і т.д. /" # <- Змінити це шлях каталогу даних
# Пошта доповіді адреса
EMAIL_ID = "you@youremailid.com" # <- змінити на ваш е-пошта ID
################################################## #########
# Резервного копіювання даних
################################################## #########
# Створення і перейти в каталог резервного копіювання
CD $ DATA_BACKUP_PARENT_DIR / $ YEAR / $ MONTH
mkdir $ ДНЯ
CD $ ДНЯ
База даних # резервного копіювання
mysqldump-H $ () DB_IP-U $ () DB_USER-P $ () $ DB_PASS DB_NAME ()> $ () DB_NAME. дБ
TAR-zcvf DB_NAME $ (). Tar.gz DB_NAME $ (). ДБ
RM-F $ DB_NAME (). ДБ
# / Резервного копіювання і т.д.
TAR-zcf etc.tar.gz / і т.д.
# Застосування резервного копіювання
TAR-zcf Apache_Doc_Root.tar.gz $ () APACHE_DOCROOT
TAR-zcf App_Files.tar.gz $ () APP_FILES
################################################## #########
# BACKUP LOG
################################################## #########
# Створення і перейти в каталог резервного копіювання
CD $ LOG_BACKUP_PARENT_DIR / $ YESTERDAY_YEAR / $ YESTERDAY_MONTH
mkdir $ YESTERDAY_DATE
CD $ YESTERDAY_DATE
# HTTPD журналу резервного копіювання
Я в $ () APACHE_LOG_DIR / access_log. ВЧОРА $ () *; робити CP $ I.; зробили
Я в access_log. ВЧОРА $ () *; робити GZIP $ I; зробили
################################################## #########
# Відправлення повідомлень пошта
################################################## #########
# Пошта повідомити
дю-ОТС DATA_BACKUP_PARENT_DIR $ / $ YEAR / $ MONTH / $ ДЕНЬ / * | пошта-S "Backup для $ () HostName:: ДАНІ зробили:)" $ () EMAIL_ID
дю-ОТС LOG_BACKUP_PARENT_DIR $ / $ YESTERDAY_YEAR / $ YESTERDAY_MONTH / $ YESTERDAY_DATE / * | пошта-S "для резервного копіювання $ HostName ():: Увійти зробили:)" $ () EMAIL_ID
################################################## #########
# Код закінчується тут
################################################## #########
Збережіть цей скрипт в директорію наприклад, / будинки / Calvin / скрипти / backup.sh. Надайте дозволу на виконуваний файл:
# Chmod + X / будинки / Calvin / скрипти / backup.sh
Тепер ви добре йти. Запуск сценарію форму вашої командному рядку:
# / Будинки / Calvin / скрипти / backup.sh
Ви також можете за бажанням додати цей скрипт як хрон роботу з тим, що воно буде здійснюватися на щоденній основі, на час вашого вибору. Якщо ви хочете використовувати цей сценарій в 4 години ранку щодня робити наступне:
# Кронтаб-е
Створити новий рядок у файл, який відкриває і додати наступне:
0 4 * * * / будинки / Calvin / скрипти / backup.sh> / Dev / нуль
Там ви йдете. Ваш сервер буде час резервного копіювання Ваших даних, бази даних, конфігураційні файли, файли додатків, файли журналів та в / виключити / резервного копіювання повсякденному в 4 години ранку. Розумні речі робити тепер буде експортувати ці резервні копії на віддаленому комп'ютері так, що ви не втратите ваші резервні копії, якщо ваш сервер стикається з проблемами. Ми будемо охоплювати, як зробити це в моїй наступній статті.





























1 comment… read it below or (1 коментар ... прочитати його нижче, або додати )
Здравствуйте
Я тестування скрипта, але я з помилками строк:
ВЧОРА = `дата-дата =" вчора "+% Y-% M-%` # D 2008-11-13
YESTERDAY_DATE = `дата-дата = вчора +% D` # 13
YESTERDAY_MONTH = `дата-дата = вчора +% м` # 11
YESTERDAY_YEAR = `дата-дата = вчора +% Y` # 2008
Помилки я це на прикладі:
mysystem # ВЧОРА = `дати. дата =. вчора. +% Y-% M-% `# D 2008-11-13
Дата: Extra оператора `+% Y-% M-% D '
Спробуйте `дати допомогу" для Море інформації
Я тестували в: Ubuntu Linux 7,04
Спасибо (і гарну роботу!)
Залишити коментар