Донецкий техникум промышленной автоматики

План переходу з Windows на Linux: Частина 8. Створення резервних копій та відновлення

  1. Серія контенту:
  2. Цей контент є частиною серії: План переходу з Windows на Linux
  3. Яка ваша стратегія?
  4. Що копіювати?
  5. Кошти резервного копіювання
  6. tar
  7. На всякий випадок
  8. Команди dump і restore
  9. Створення резервних копій з використанням dump
  10. пропуск файлів
  11. Відновлення за допомогою команди restore
  12. Відтворення (-r)
  13. Витяг (-x)
  14. Інтерактивне відновлення (-i)
  15. dump або tar?
  16. інші утиліти
  17. Комерційні програмні продукти для резервного копіювання
  18. Tivoli Storage Manager
  19. Малюнок 1. Меню Tivoli Storage Manager
  20. Малюнок 2. Інтерфейс Tivoli Storage Manager.
  21. Ресурси для скачування

План переходу з Windows на Linux

Короткий посібник з резервного копіювання та відновлення в Linux

Серія контенту:

Цей контент є частиною # з серії # статей: План переходу з Windows на Linux

https://www.ibm.com/developerworks/ru/views/global/libraryview.jsp?series_title_by=План+перехода+с+windows+на+linux

Слідкуйте за виходом нових статей цієї серії.

Цей контент є частиною серії: План переходу з Windows на Linux

Слідкуйте за виходом нових статей цієї серії.

Linux - це стабільна і надійна система. Проте, в будь-якої комп'ютерної системи можуть відбуватися непередбачені події, такі як, наприклад, збій обладнання. Надійне резервне копіювання важливої ​​конфігураційної інформації і даних - невід'ємна частина плану адміністрування системи. Існує безліч підходів до створення резервних копій в Linux. Вони варіюються від простих методів, заснованих на виконанні сценаріїв, до використання складних комерційних продуктів. Резервне копіювання може виконуватися на віддалені мережеві пристрої або на магнітну стрічку та інші видобувні пристрою. Ви можете копіювати файли або створювати образ диска. Варіантів безліч, і ви можете коригувати і змішувати різні підходи, щоб ваш план копіювання найкращим чином підходив для вашої ситуації.

Яка ваша стратегія?

Існує багато різних підходів до створення резервних копій системи. Щоб отримати загальне уявлення про це вам, можливо, має сенс прочитати статтю "Introduction to Backing Up and Restoring Data", посилання на яку є в розділі ресурси в кінці цієї статті.

Що саме ви будете копіювати, залежить виключно від причин, що спонукають вас створювати резервні копії. Ви хочете підстрахуватися від серйозних збоїв, таких, як відмова обладнання? Або ж ви архівуєте старі файли, які можуть знадобитися згодом? Чи буде відправною точкою при відновленні система в початковому стані або ж попередньо завантажена система, що знаходиться в режимі очікування?

Що копіювати?

Орієнтована на файли природа Linux дає величезну перевагу при виконанні резервного копіювання та при відновленні системи. У Windows реєстр вкрай системно залежимо. Налаштування системи і встановлення обладнання - це набагато більше, ніж просте додавання файлів в систему. Таким чином, відновлення системи вимагає програмного забезпечення, яке враховує такі індивідуальні особливості. У Linux ситуація інша. Файли тут мають текстовий вигляд і практично не залежать від системи, за винятком моментів, коли вони безпосередньо пов'язані з обладнанням. У сучасному підході апаратні драйвера є динамічно завантажувані модулі, що дозволяє зробити ядро ​​менш залежним від системи. Тому резервне копіювання чи не перетворюється в рішення головоломки про те, яким чином на наявне обладнання була інстальована система, а фактично являє собою архівування та розархівування файлів.

Ось деякі каталоги, які має сенс копіювати:

  • / etc
    Містить всі ваші ключові конфігураційні файли. В їх число входять мережеві настройки, ім'я системи, правила брандмауера, користувачі, групи та інші системні елементи.
  • / var
    Містить інформацію, яка використовується вашими системними демонами (службами), в тому числі настройки DNS, DHCP leases, файли поштового буфера, файли HTTP сервера, конфігурації db2 і інші.
  • / home
    Містить домашні каталоги за замовчуванням для всіх ваших користувачів. Зберігає дані про персональні налаштування, завантажені файли та іншу цінну для ваших користувачів інформацію.
  • / root
    Домашній каталог привілейованого користувача root.
  • / opt
    Каталог, для несистемного програмного забезпечення. Сюди встановлюється програмне забезпечення IBM. OpenOffice, JDKs і інше програмне забезпечення за замовчуванням так само встановлюється в цей каталог.

Нижче наведені каталоги, для яких не треба створювати резервні копії.

  • / proc
    Ніколи не робіть резервні копії для цього каталогу. У ньому лежать не реальні файли, а лише віртуальний образ працюючого ядра і середовища. Він містить такі файли, як / proc / kcore - віртуальний образ усієї використовуваної пам'яті. Копіювання цього каталогу - лише марна трата ресурсів.
  • / dev
    Містить файлове представлення ваших апаратних пристроїв. Ви можете виконати резервне копіювання каталогу / dev, якщо плануєте починати відновлення з порожньою системи. Однак, якщо ви плануєте відновлення з уже інстальованим Linux, то немає необхідності копіювання / dev.

Інші директорії містять системні файли і встановлені програмні пакети. У разі сервера велика частина цієї інформації залишається незмінною. Більшість змін відбувається в каталогах / etc і / home. Але для повноти ви можете скопіювати і їх.

У разі production-систем, де я хочу бути впевнений, що мої дані не загубляться, я, швидше за все, виконаю резервне копіювання всієї системи, за винятком директорії / proc. Якби я головним чином хвилювався про дані користувачів та налаштування, я виконав би тільки резервне копіювання систем / etc, / var, / home і / root.

Кошти резервного копіювання

Як уже згадувалося вище, резервне копіювання в Linux полягає, головним чином, в архівування та розархівуванні файлів. Це дозволяє вам використовувати існуючі системні утиліти і писати сценарії для виконання резервного копіювання та не купувати комерційне програмне забезпечення. У більшості випадків такий резервної копії досить, і це надає адміністратору широкі можливості для контролю ситуації. Запуск сценарію резервного копіювання можна автоматизувати, використовуючи команду cron, яка в Linux управляє виконанням запланованих подій.

tar

tar - це класична команда Unix, яка була перенесена в Linux. tar - це абревіатура t ape ar chive, спочатку ця команда була призначена для архівування файлів на магнітну стрічку. Якщо ви завантажували якийсь Linux код, то, швидше за все, ви вже стикалися з tar файлами. Це файлова команда, яка послідовно компонує файли в безперервний ланцюг.

Завдяки тому, що команда tar може архівувати цілі дерева каталогів, вона особливо добре підходить для створення резервних копій. Відновлення можна виконувати для архівів цілком, або для окремих файлів і каталогів. Резервні копії можуть розміщуватися на файлових пристроях або на магнітній стрічці. При відновленні файли можуть бути перенаправлені і розміщені в каталозі (або системі), відмінному від того, з якого були збережені. Команда tar не залежить від файлової системи. Вона може використовуватися в файлових системах ext2, ext3, jfs, Reiser і т.д.

Команда tar у використанні дуже схожа на файлову службову програму, таку як PKZip. Ви вказуєте їй вихідний об'єкт, який може бути файлом або пристроєм і потім перераховуєте файли, які хочете запакувати. По ходу справи ви можете стиснути архів, використовуючи стандартні типи стиснення, або використовувати для цих цілей зовнішню програму стиснення, на ваш вибір. Використовуйте tar -j, щоб стискати або витягувати файли з архіву за допомогою утиліти bzip2, або tar -j, щоб стискати або витягувати файли з архіву за допомогою утиліти gzip.

Для того щоб використовуючи tar створити на стрічковому SCSI-пристрої резервну копію всієї системи, крім каталогу / proc, введіть:

tar -cpf / dev / st0 / --exclude = / proc

У наведеному вище прикладі, ключ -c вказує на те, що створюється архів. Ключ -p потрібен для того, щоб зберегти права доступу для файлів, що є необхідною умовою для хорошого резервного копіювання. Ключ -f вказує на ім'я файлу для архіву. В даному випадку ми використовуємо накопичувач на магнітній стрічці / dev / st0. Символ / задає, що саме ми хочемо копіювати. Оскільки в нашому випадку це вся файлова система, то зазначений кореневої каталог. При посиланні на каталог (в кінці якого стоїть символ /) tar автоматично рекурсивно обходить всі підкаталоги. І, нарешті, ми виключаємо каталог / proc, оскільки він не містить нічого цінного для нас. Якщо резервна копія не вміщується на одній магнітній стрічці, то ми додамо ключ -M (тут не показаний) - вказівка ​​на багатотомний архів.

На всякий випадок

Не забувайте, що Linux чутливий до регістру. Наприклад, команда tar вводиться в нижньому регістрі. Ключі можуть бути нижнього, верхнього або змішаних регістрів. Так, наприклад, -t і -T виконують різні функції. Імена файлів і каталогів можуть містити символи з верхнього і нижнього регістрів і так само, як команди і ключі, чутливі до регістру.

Щоб відновити файл або файли, команда tar використовується з ключем extract (-x):

tar -xpf / dev / st0 -C /

Ключ -f знову посилається на наш файл, а -p вказує на те, що ми хочемо відновити заархівовані дані, зберігши права доступу. Ключ -x вказує на відновлення з архіву. Ключ -C / вказує на те, що відновлення повинно проводиться в кореневій каталог. Команда tar за замовчуванням відновлює архів в той каталог, з якого була запущена. Ключ -C забороняє відновлення в поточний каталог.

Дві інші команди tar, які ви, швидше за все, будете часто використовувати - це ключі -t і -d. Ключ -t виводить вміст архіву. Ключ -d порівнює вміст архіву з поточними файлами в системі.

Для полегшення роботи і редагування ви можете записати файли і каталоги, які ви хочете архівувати, в текстовий файл, на який можна послатися за допомогою ключа -T. Їх можна комбінувати з іншими каталогами, зазначеними в командному рядку. У наступному прикладі проводиться резервне копіювання всіх файлів і каталогів, включених в файл MyFiles, каталогу / root, і всіх файлів з розширенням iso з каталогу / tmp.

tar -cpf / dev / st0 -T MyFiles / root /tmp/*.iso

Список файлів являє собою простий текстовий файл, що містить файли і каталоги у вигляді списку. Ось приклад такого файлу:

/ etc
/ var
/ home
/ Usr / local
/ opt

Зверніть увагу, що команда tar -T (або files-from) не сприймає шаблон. Імена файлів повинні бути вказані точно. В наведеному вище прикладі продемонстровано спосіб послатися на файли окремо. Ви також можете виконати скрипт, який проведе пошук в системі і створить список. Ось приклад такого скрипта:

#! / Bin / sh
cat MyFiles> TempList
find / usr / share -iname * .png >> TempList
find / tmp -iname * .iso >> TempList
tar -cpzMf / dev / st0 -T TempList

Скрипт, наведений вище, копіює весь існуючий список файлів з MyFiles в TempList. Потім він виконує дві команди find для пошуку в файлової системі файлів, що задовольняють певній умові, і додає їх в TempList. Перша команда пошуку шукає в каталозі / usr / share всі файли, що закінчуються на .png. Друга команда пошуку шукає в каталозі / tmp всі файли, що закінчуються на .iso. Після створення списку запускається команда tar, яка створить новий архів (c reate) на файловому пристрої (f ile device) / dev / st0 (перший SCSI-носій на магнітній стрічці), який буде стиснутий у форматі g z ip зі збереженням всіх прав доступу для файлів (p ermissions). Архів буде розбитий на кілька томів (M ultiple volumes). Імена файлів, які повинні бути заархівовані будуть взяті (T aken) з файлу TempList.

Використання скриптів також може бути корисно при виконанні більш складних дій, таких як инкрементальное резервне копіювання. Чудовий скрипт наведено Герхардом Моурані в його книзі Securing and Optimizing Linux, посилання на яку ви можете знайти в розділі ресурси в кінці цієї статті.

Скрипти також можуть відновлювати файли, хоча відновлення часто виконується вручну. Як говорилося вище, в цьому випадку замість ключа -c використовується ключ -x. Відновлення може проводитися як для архіву цілком, так і для окремих зазначених файлів або каталогів. Тут для посилань на файли в архіві можна використовувати шаблони. Ви можете так само використовувати ключі для команд dump і restore.

Команди dump і restore

Команда dump виконує практично ті ж функції, що і tar. Однак вона швидше призначена для роботи з файловими системами, а не окремими файлами. Цитуючи з керівництва до dump: "dump перевірять файли файлової системи ext2 і вирішує, які файли потребують резервне копіювання. Ці файли копіюються для збереження на вказаний диск, магнітну стрічку або інший носій даних. Дамп, розмір якого більше, ніж розмір носія на виході , розбивається на кілька томів. на більшості носіїв цей розмір визначається шляхом запису до тих пір, поки не буде отримано сигнал про переповнення носія. "

Програму dump доповнює програма restore, використовувана для відновлення збережених файлів з дампа.

Команда restore виконує функцію, зворотну команді dump. Після відновлення всієї файлової системи поверх можна відновлювати інкрементальні резервні копії. З повною або інкрементальною копії можуть бути відновлені і поодинокі файли і директорії з підкаталогами.

Як dump так і restore можна запустити по мережі, тобто ви можете виконувати архівацію або відновлення з віддалених пристроїв. Команди dump і restore працюють з стрічковими і файловими пристроями і володіють великим набором опцій. Однак ці команди обмежені тільки файловими системами ext2 і ext3. Якщо ви працюєте з JFS, Reiser або іншими файловими системами, вам необхідна інша утиліта, наприклад tar.

Створення резервних копій з використанням dump

За допомогою команди dump резервну копію зробити досить просто. Наведена нижче команда виконує повне резервне копіювання Linux з файловими системами ext2 і ext3 на SCSI стрічкове пристрій:

dump 0f / dev / nst0 / boot
dump 0f / dev / nst0 /

У цьому прикладі в нашій системі використовуються дві файлові системи. Одна для каталогу / boot, а інша для / - стандартна конфігурація. При виконанні копіювання на кожну з них треба посилатися окремо. / Dev / nst0 посилається на перше стрічкове SCSI пристрій, що використовується в режимі без перемотування. Цей режим гарантує, що томи на стрічці будуть слідувати чітко один за одним.

Цікавою особливістю команди dump є вбудована функціональна можливість створення інкрементальною резервної копії. В наведеному вище прикладі 0 вказує на рівень 0 або на базовий рівень резервної копії. Таке копіювання всієї системи вам слід виконувати періодично для охоплення системи цілком. Для зміни рівня наступних резервних копій ви можете використовувати інші номери (1-9) замість 0. Під час резервного копіювання рівня 1 будуть збережені всі файли, які були змінені з моменту створення копії рівня 0. При копіюванні рівня 2 буде збережено всі, що було змінено з моменту створення копії рівня 1 і так далі. Те ж саме можна виконати за допомогою команди tar, використовуючи скрипт, але для цього необхідно, щоб людина, яка пише скрипт, мав механізм для визначення, коли було проведено останній копіювання. Команда dump володіє власним алгоритмом, оновлюючим update-файл (/ etc / dumpupdates) при проведенні резервного копіювання. Update-файл скидається в початковий стан всякий раз, коли відбувається резервне копіювання нульового рівня. При копіюванні наступних рівнів ставляться мітки аж до того моменту, коли відбудеться наступне копіювання нульового рівня. Якщо ви збираєтеся проводити копіювання на стрічкові пристрої, dump автоматично зробить розподіл на томи.

пропуск файлів

Існує можливість відзначити ті файли і директорії, які будуть пропущені командою dump. Для цього використовується команда chattr, яка змінює розширені атрибути файлів у файлових системах ext2 і ext3.

chattr + d <filename>

Наведена вище команда додає до файлу мітку, яка вказує команді dump пропустити цей файл при виконанні резервного копіювання.

Відновлення за допомогою команди restore

Для відновлення інформації, збереженої за допомогою команди dump, використовується команда restore. За аналогією з tar, команда restore може вивести вміст архіву (-t) і порівняти архіви з поточними файлами (-C). Будьте уважні з командою restore при відновленні даних. Існує два різних підходи і для того, щоб отримати передбачувані результати, ви повинні вибрати правильний.

Відтворення (-r)

Пам'ятайте, що команда dump призначена швидше для роботи з файловою системою, ніж з окремими файлами. Тому існують два різні способи відновлення даних. Для відтворення файлової системи використовуйте ключ -r. Відтворення за задумом повинно проводитися на порожній файлової системи і відновлювати її збережений стан. Перед початком відтворення у вас повинна бути створена, відформатована і подмонтіровать файлова система. Не об'єднуйте свій пристрій відтворення в файлової системі, яка містить файли.

Ось приклад повного відтворення з дампа, виконаного в прикладі вище.

restore -rf / dev / nst0

Така команда повинна бути виконана для кожної файлової системи, що вимагає відновлення.

Процедуру можна повторювати, додаючи, при необхідності, інкрементні резервні копії.

Витяг (-x)

Если вам треба працювати з окремим файлами, а не з цілімі файлової системи, використову для вітягання ключ -x. Наприклад, щоб витягти один каталог / etc з архіву на стрічковому накопичувачі, виконайте наступну команду:

restore -xf / dev / nst0 / etc

Інтерактивне відновлення (-i)

Ще одна можливість, закладена в команду restore, - це діалоговий режим. Виконавши команду:

restore -if / dev / nst0

ви потрапите в інтерактивну оболонку, в якій будуть показані елементи, що містяться в архіві. Ввівши "help" ви побачите список команд. Потім ви можете переглянути і вибрати елементи, які ви хочете отримати. Майте на увазі, що всі файли, які ви отримаєте, будуть поміщені в ваш поточний каталог.

dump або tar?

Обидві команди, dump і tar, мають своїх шанувальників. У кожної є свої переваги і недоліки. Якщо ви використовуєте файлові системи, відмінні від ext2 або ext3, то dump вам не підходить. Однак, в іншому випадку, команда dump дозволить скоротити до мінімуму використання скриптів і, крім того, полегшить процес відновлення завдяки наявності інтерактивного режиму.

Особисто я вважаю за краще використовувати команду tar, оскільки я люблю писати скрипти, тому що вони забезпечують високий рівень контролю. Крім того, існують багатоплатформні кошти для роботи з файлами .tar.

інші утиліти

В принципі, будь-яку програму, яка може копіювати файли, можна використовувати для виконання того чи іншого виду резервного копіювання в Linux. Деякі люди використовують для створення резервних копій програми cpio і dd. cpio - утиліта архівації, схожа на tar. Вона набагато менш поширена. dd - це утиліта копіювання файлової системи, що створює бінарні копії файлової системи. Утиліту dd можна використовувати для створення образу жорсткого диска в дусі таких програмних продуктів, як Symantec Ghost. Однак dd - це не файлова утиліта, тому ви можете відновлювати дані тільки на ідентичні розділи жорсткого диска.

Комерційні програмні продукти для резервного копіювання

Існує кілька комерційних програм резервного копіювання, призначених для Linux. Комерційні продукти зазвичай надають зручний інтерфейс і систему звітності, в той час як, використовуючи утиліти dump і tar, вам доведеться обійтися без цих зручностей. Комерційні програми пропонують широкий вибір функцій. Найбільша користь, яку можуть принести комерційні пакети, - це запропонувати вам вже готову для використання вбудовану стратегію виконання резервного копіювання. Розробники таких програм свого часу вже пройшли через все ті помилки, що вам ще тільки належить зробити, і плата за їх досвід невелика, у порівнянні з втратою важливих даних.

Tivoli Storage Manager

Можливо, найкраща комерційна утиліта резервного копіювання та управління архівами, доступна тепер в Linux - це Tivoli Storage Manager. Tivoli Storage Manager Server працює на декількох платформах, в тому числі Linux, а клієнт підтримує ще більше число платформ.

Storage Manager Server конфигурируется для роботи з пристроями, здатними виконати резервну копію всього оточення. Будь-яка система, яка бере участь в копіюванні, завантажує клієнта, який взаємодіє з сервером. Резервне копіювання може бути автоматичним, виконаним вручну за допомогою інтерфейсу клієнта Tivoli Storage Manager або ж виконаним віддалено, через Web-інтерфейс.

Поведінка TSM засноване на політиках, що дозволяє визначити основні правила резервного копіювання без постійного оновлення списку файлів. Крім того, IBM Tivoli Storage Resource Manager може розпізнавати, оцінювати, контролювати і прогнозувати використання пристроїв для зберігання даних в масштабах підприємства, виявляти потенційні проблеми та усувати неполадки в автоматичному режимі. Більш детальну інформацію ви знайдете на сторінці Tivoli (посилання наведена в розділі ресурси ).

Малюнок 1. Меню Tivoli Storage Manager
План переходу з Windows на Linux   Короткий посібник з резервного копіювання та відновлення в Linux   Серія контенту:   Цей контент є частиною # з серії # статей: План переходу з Windows на Linux   https://www

Управління резервним копіюванням і відновленням проводиться з віддаленого пристрою.

Малюнок 2. Інтерфейс Tivoli Storage Manager.

займемося копіюванням

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

Linux спочатку поставляється з деякими корисними інструментами резервного копіювання. Два найбільш поширених - це tar і dump / restore. Вони обидва можуть зробити повне копіювання системи. При творчому підході до написання сценарію ви зможете втілити в життя особливу схему резервного копіювання, призначену для збереження систем як локально, так і віддалено.

Однак це велика відповідальність - самостійно писати сценарії для проведення резервного копіювання, особливо у випадку великої корпорації. Комерційне програмне забезпечення, таке як Tivoli Storage Manager, поставить крапку на навчанні і дозволить вам негайно взяти в свої руки управління вашим резервним копіюванням, але, можливо, вам доведеться підкоригувати вашу стратегію, для того щоб пристосуватися до того, що можуть запропонувати інструменти копіювання.

Ресурси для скачування

Схожі тими

  • Оригінал цього навчального посібника на developerWorks.
  • Ознайомтеся з іншими частинами цієї серії англійською Windows-to-Linux roadmap (DeveloperWorks, листопад 2003) і російською План переходу з Windows на Linux мовах.
  • Linux Administrator's Security Guide - керівництво з безпеки з відмінною главою про практичну сторону резервного копіювання та відновлення в Linux.
  • Introduction to Backing Up and Restoring Data огляд в якому автори аналізують різні методи і стратегії бекапірованія, незалежно від операційних систем або архітектури системи.
  • Linux Administration Made Easy стара, але все ще корисне посилання, так як основні процедури і методи в Linux залишилися незмінними.
  • The Linux System Administrator's Guide введення в системне адміністрування Linux для початківців.
  • The TAO of Backup цікаву виставу принципів резервного копіювання як філософської системи. Інформація хоча і пов'язана з комерційним продуктом, дуже добре викладена.
  • Навчальний посібник з сайту IBM developerWorks " Backing up your Linux machines "Поведе вас через процес створення і закінчить стратегією резервного копіювання.
  • Зберігати дані резервного копіювання та інші відомості на CD дуже просто: вивчіть, як це робиться в статті з сайту IBM developerWorks " Burning CDs on Linux ".
  • Якщо ви переходите з Windows-оточення на Linux-оточення, то вам буде цікаво почитати Technical FAQ for Linux users .
  • Продукт Tivoli Storage Manager був обраний в Best Data Storage Solution at LinuxWorld 2003 . Дізнатися більше про Tivoli Storage Manager for Linux можна на сайті IBM.
  • На сторінці Tivoli product page можна знайти додаткову інформацію по Tivoli, включаючи функції безпеки та конфіденційності.
  • Права доступу і безпеку розглянуті в Chapter 3 of the Introduction to Linux керівництва Linux Documentation Project.
  • Додаткову інформацію можна знайти в Linux-зоні сайту developerWorks resources for Linux developers

Підпішіть мене на ПОВІДОМЛЕННЯ до коментарів

Що копіювати?
Jsp?
Яка ваша стратегія?
Ви хочете підстрахуватися від серйозних збоїв, таких, як відмова обладнання?
Або ж ви архівуєте старі файли, які можуть знадобитися згодом?
Чи буде відправною точкою при відновленні система в початковому стані або ж попередньо завантажена система, що знаходиться в режимі очікування?
Що копіювати?
Dump або tar?