Як створити автоматизовану Linux / Unix копій

on November 18, 2008 по Sukrit Dhandhania по 18 Листопада 2008

Linux

"Стежок вчасно, варто дев'яти", виходить стара приказка. У світі комп'ютерів ми говоримо про те, що стежок, як резервне копіювання. При запуску виробництва ІТ-інфраструктури, вкрай важливо, що ми досягнемо працює на наших серверах і в додатках, як майже сто відсотків, як це можливо. Хоча Є кілька способів зробити ІТ-інфраструктуру твердий, це неможливо зробити це доказом провалу. Тому ми робимо план 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 години ранку. Розумні речі робити тепер буде експортувати ці резервні копії на віддаленому комп'ютері так, що ви не втратите ваші резервні копії, якщо ваш сервер стикається з проблемами. Ми будемо охоплювати, як зробити це в моїй наступній статті.

Пов'язані Повідомлень:
  • Windows XP Відновлення системи Особливості
  • Підніміть ваш Linux / Unix Продуктивність: Як використовувати кронтаб
  • Як завантажити файл з командного рядка Linux
  • Проходження: Машина часу для OS X 10,5 Леопард
  • Як для резервного копіювання файлів на ваш рахунок Dreamhost (OS X)
  • Отримати довідки Прості уроки точно так само, як це в своє повідомлення Вхідні кожен день - безкоштовно! Просто введіть свою адресу електронної пошти нижче:

    Ви завжди можете відмовитися від підписки це повідомлення в будь-який момент.


    Закладка і Поділіться

    1 comment… read it below or (1 коментар ... прочитати його нижче, або додати )

    1 Альберто 12.09.08 в 5:56 ранку

    Здравствуйте
    Я тестування скрипта, але я з помилками строк:

    ВЧОРА = `дата-дата =" вчора "+% 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

    Спасибо (і гарну роботу!)

    Залишити коментар

    Ви можете використовувати ці теги HTML і атрибути: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>