Модуль 20

Backup та відновлення даних

Ось урок на тему "Backup та відновлення даних", створений у стилі CS50: енергійний, з живими прикладами та фокусом на розумінні суті.


🎓 CS50: Мистецтво подорожей у часі (Backup та відновлення)

1. 🔥 Вступ: Кошмар, який стає реальністю

Уявіть ситуацію. Ніч. Ви дописуєте свій фінальний проєкт, дипломну роботу або код для стартапу. Ви працювали над цим останні два тижні. Очі печуть, кава закінчилась, але ви задоволені — все працює ідеально.

Ви натискаєте Save... і раптом екран гасне. Або чуєте характерне "цк-цк-цк" зсередини ноутбука. Або ви випадково пишете команду, яка видаляє не той файл.

Ви перезавантажуєтесь, відкриваєте папку... а там пусто.

Відчули цей холод по спині? Це момент, коли ви готові віддати будь-які гроші за машину часу.

Сьогодні ми не будемо говорити про магію. Ми будемо говорити про інженерію. Сьогодні ми навчимося створювати "точки збереження" у реальному житті.

Чому це критично? У світі IT існує приказка:

"Люди діляться на два типи: ті, хто ще не робить бекапи, і ті, хто вже робить."

Наша мета сьогодні — перевести вас у другу категорію без болісного досвіду втрати даних. Поїхали!


2. 🧠 Теоретична база: Як працює "машина часу"

Давайте розберемося, що таке Backup (резервне копіювання). Це не просто "копія файлу". Це стратегія виживання.

Аналогія: Сейф та Ксерокс

Уявіть, що у вас є унікальний документ (Ваші Дані). 1. Зберігання: Ви кладете його в сейф (Жорсткий диск). Але якщо сейф згорить разом з будинком? Дані зникли. 2. Бекап: Ви робите ксерокопію і відносите її до будинку своєї бабусі в іншому місті. Тепер, якщо ваш сейф згорить, ви поїдете до бабусі й заберете копію.

Три типи бекапів (що треба розуміти інтуїтивно)

Уявіть, що ви пишете книгу щодня.

  1. Повний бекап (Full Backup):

    • Щовечора ви ксерокопіюєте ВСЮ книгу від першої до останньої сторінки.
    • Плюс: Легко відновити (просто взяв пачку паперу).
    • Мінус: Дуже довго і витрачає купу паперу (пам'яті), якщо книга товста.
  2. Інкрементальний бекап (Incremental):

    • У понеділок ви скопіювали всю книгу. У вівторок ви копіюєте тільки ті сторінки, які написали у вівторок. У середу — тільки те, що написали у середу.
    • Плюс: Дуже швидко, займає мінімум місця.
    • Мінус: Щоб відновити книгу, вам треба зібрати: Повну копію понеділка + шматочок вівторка + шматочок середи. Якщо загубите шматочок вівторка — середа теж не допоможе.
  3. Диференційний бекап (Differential):

    • Компроміс. У понеділок — повна копія. У вівторок — все, що змінилось з понеділка. У середу — все, що змінилось з понеділка (включно з вівторком і середою).

🔴 Що запам'ятати обов'язково: Правило 3-2-1: * 3 копії даних (одна робоча + дві запасні). * 2 різні носії (наприклад, ваш ноутбук і зовнішній диск). * 1 копія десь далеко (у хмарі або в іншому офісі), щоб фізична пожежа не знищила все.


3. 🧪 Приклади: Від Ctrl+C до автоматизації

Давайте подивимось, як це виглядає на практиці в терміналі (або в житті).

Рівень 1: Ручне копіювання (The "Baby Step")

Найпростіший бекап — це команда cp (copy).

cp my_thesis.txt my_thesis.txt.bak

Питання до вас: Що станеться, якщо я зміню оригінал my_thesis.txt, а потім мій диск повністю зламається? Відповідь: Ви втратите обидва файли. Це поганий бекап, бо він на тому ж носії (порушення правила "2 носії").

Рівень 2: Архівація ("Валіза")

У вас є проєкт із 1000 файлів. Копіювати їх по одному — довго. Ми використовуємо "тарбол" (tarball) — це як закинути всі речі у валізу і закрити її.

# Створюємо архів (c - create, f - file)
tar -cf project_backup.tar ./my_project_folder

Тепер у вас є один файл project_backup.tar, який легко відправити на Google Drive.

Рівень 3: Розумна синхронізація (rsync)

Це стандарт індустрії. Уявіть, що у вас є папка з фотографіями (100 ГБ). Ви додали одне нове фото. Якщо ви просто скопіюєте папку знову — комп'ютер буде витрачати годину, переписуючи ті самі 100 ГБ. Нерозумно, правда?

rsync дивиться і каже: "Гей, ці файли однакові, я їх не чіпаю. О, а цей новий! Скопіюю тільки його".

# a - archive mode (зберігає права, дати), v - verbose (показує, що робить)
rsync -av ./photos /media/usb_drive/backup_photos

Питання: Якщо я видалю фото в папці ./photos і запущу цю команду знову, чи видалиться воно на флешці /media/usb_drive? Відповідь: За замовчуванням — НІ. І це чудово! Це рятує вас від випадкового видалення ("Fat Finger error"). Бекап зберігає історію.


4. 🛠 Практична частина

Час "забруднити руки". Якщо у вас немає Linux-терміналу, просто уявіть логіку або спробуйте на Windows (PowerShell) / Mac.

Завдання 1: Створення "рятувального жилета" Створіть текстовий файл important.txt з текстом "Мій пароль від банку". Зробіть його копію з розширенням .bak. Мета: Зрозуміти найпростішу версію бекапу.

Завдання 2: Симуляція катастрофи 1. Створіть папку data. 2. Створіть архів цієї папки (tar або zip). 3. Видаліть оригінальну папку data. (Так-так, видаляйте! Відчуйте цей страх). 4. Відновіть папку з архіву. Мета: Переконатися, що ви вмієте не тільки ховати, а й знаходити.

Завдання 3: Метод rsync (мисленнєвий експеримент) У вас є папка з 50 гігабайтами відео. Ви змінили назву одного відеофайлу. Ви запускаєте rsync. Питання: Чи буде rsync копіювати всі 50 ГБ заново? Чому?

Завдання 4: Міні-кейс Ви працюєте фотографом. Ви скидаєте фото на ноутбук. Потім на зовнішній диск. Проблема: Якщо у вас вкрадуть рюкзак, де лежать і ноут, і диск — ви втратите все. Рішення: Запропонуйте, як застосувати правило 3-2-1 у цій ситуації. (Підказка: хмара або диск, який залишається вдома).

Завдання 5: А що, якщо... (Corruption) Ви робите бекапи щодня. Але ваш диск почав "сипатися" і записує дані з помилками. Ви дізналися про це через місяць, коли все впало. Ви намагаєтесь відновити бекап, а він не читається. Питання: Яку перевірку ви забули робити?


5. 💡 Мислення як у розробника

Ось що відрізняє новачка (Junior) від профі (Senior) у питанні бекапів.

1. Бекап Шредінгера

Новачок думає: "Я налаштував скрипт бекапу, я в безпеці". Профі знає: "Бекап не існує, поки ти не спробував з нього відновитися".

Порада: Раз на місяць ви повинні реально спробувати розгорнути свої дані з бекапу на чистому місці. Часто виявляється, що архів порожній або пошкоджений.

2. Автоматизація — це все

Люди ліниві. Люди забувають. Якщо ваш план бекапу вимагає, щоб ви вручну щоп'ятниці копіювали файли — ви провалите це через 3 тижні.

Порада: Використовуйте cron (планувальник завдань) або хмарні сервіси, які роблять це самі фоном. Бекап має відбуватися непомітно для вас.

3. Холодні та гарячі дані

Не треба бекапити все підряд. Не треба бекапити папку Downloads з мемами або системні файли Windows/Linux (їх можна перевстановити).

Порада: Бекапте тільки те, що ви створили самі і що неможливо завантажити з інтернету заново.


6. 🧩 Підсумок

Отже, що ми сьогодні зробили?

  1. Зрозуміли, що втрата даних — це питання "коли", а не "якщо".
  2. Вивчили правило 3-2-1 (золотий стандарт безпеки).
  3. Дізналися, чим повний бекап відрізняється від інкрементального (аналогія з книгою).
  4. Спробували (в думках чи реально) використати tar та rsync.

Тепер ви вмієте: Створювати машину часу для своїх файлів. Ви більше не боїтеся натиснути "Delete", тому що знаєте шлях назад.

🚀 Тизер наступного уроку: Ми навчилися зберігати дані. Але що, якщо ваші бекапи вкраде хакер? Ваші паролі та фото будуть у нього. Як захистити дані так, щоб навіть маючи файл, злодій побачив лише набір випадкових символів? На наступному уроці ми поговоримо про Шифрування та Криптографію.

Це був CS50. До зустрічі! 👋