Модуль 8.4: Планування завдань та Бекапи
Операції — LFCS | Складність:
[COMPLEX]| Час: 45–55 хв
Передумови
Розділ «Передумови»Перед початком цього модуля:
- Обов’язково: Модуль 1.2: Процеси та systemd
- Обов’язково: Модуль 8.1: Керування сховищами
- Бажано: Модуль 8.3: Пакети та Користувачі
Що ви зможете робити після цього модуля
Розділ «Що ви зможете робити після цього модуля»Після завершення цього модуля ви зможете:
- Створити завдання cron та systemd timers для повторюваних задач і пояснити, коли використовувати кожен
- Реалізувати стратегії резервного копіювання (повне, інкрементне, диференційне) за допомогою rsync, tar та знімків etcd
- Спроєктувати розклад бекапів з політиками збереження та перевірити процедури відновлення
- Діагностувати збої cron-завдань, перевіряючи логи, дозволи та змінні оточення
Чому цей модуль важливий
Розділ «Чому цей модуль важливий»Кожен системний адміністратор рано чи пізно дізнається, що є два типи людей: ті, хто робить бекапи, і ті, хто дуже шкодує, що не робив їх. Але бекапи марні без автоматизації, а автоматизація марна без планування.
Розуміння планування та бекапів допоможе вам:
- Автоматизувати рутину — ротація логів, оновлення сертифікатів, очищення тимчасових файлів.
- Захистити дані — залізо ламається, люди помиляються, віруси існують.
- Гарантувати надійність — ви будете впевнені, що важливі скрипти запустяться вчасно.
- Скласти іспит LFCS — Cron, таймери systemd, tar та rsync зустрічаються у багатьох розділах.
Частина 1: Планування завдань
Розділ «Частина 1: Планування завдань»Cron — Класичний планувальник
Розділ «Cron — Класичний планувальник»Cron працює у фоні та кожну хвилину перевіряє свій розклад.
Синтаксис Cron
Розділ «Синтаксис Cron»Кожен запис має 5 полів часу та саму команду:
* * * * * команда│ │ │ │ ││ │ │ │ └── день тижня (0-7, де 0 і 7 - неділя)│ │ │ └────── місяць (1-12)│ │ └───────── день місяця (1-31)│ └──────────── година (0-23)└─────────────── хвилина (0-59)Приклади розкладу
Розділ «Приклади розкладу»*/5 * * * *— кожні 5 хвилин.30 2 * * *— щодня о 02:30 ночі.0 9 * * 1— щопонеділка о 09:00 ранку.
# Редагувати свій розкладcrontab -e
# Переглянути розкладcrontab -lТаймери systemd — Сучасний підхід
Розділ «Таймери systemd — Сучасний підхід»Таймери є більш гнучкими та надійними, ніж cron. Вони складаються з двох файлів: .service (що робити) та .timer (коли робити).
Частина 2: Архівація та Бекапи
Розділ «Частина 2: Архівація та Бекапи»tar — Універсальний інструмент архівації
Розділ «tar — Універсальний інструмент архівації»tar збирає багато файлів в один архів.
# Створити стиснутий архів (gzip)tar -czf backup.tar.gz /path/to/data
# Розпакувати архівtar -xzf backup.tar.gz
# Переглянути вміст без розпакуванняtar -tzf backup.tar.gzrsync — Розумна синхронізація
Розділ «rsync — Розумна синхронізація»rsync копіює тільки ті частини файлів, що змінилися, економлячи час та трафік.
# Синхронізація папок (локально)rsync -av --delete /source/ /backup/
# Синхронізація на віддалений серверrsync -avz /data/ user@remote-server:/backup/Правило 3-2-1
Розділ «Правило 3-2-1»Золотий стандарт стратегії бекапів:
- 3 копії даних (оригінал + 2 бекапи).
- 2 різні типи носіїв (наприклад, локальний диск + хмара).
- 1 копія поза офісом (offsite) — для захисту від пожежі чи крадіжки.
Тест
Розділ «Тест»-
Напишіть рядок для cron, щоб запускати скрипт щодня опівночі.
Відповідь
`0 0 * * * /шлях/до/скрипта` (або використати шорткат `@daily`). -
Що робить прапор
-zу командіtar?Відповідь
Він вмикає стиснення архіву за допомогою алгоритму **gzip**. -
Чому
rsyncкращий заcpдля регулярних бекапів?Відповідь
`rsync` вміє копіювати тільки змінені файли (дельта-копіювання), підтримує стиснення при передачі та може видаляти у місці призначення файли, яких уже немає в джерелі (параметр `--delete`), підтримуючи точну копію. -
Як перевірити статус усіх запланованих таймерів systemd?
Відповідь
Командою `systemctl list-timers`.
Практична вправа
Розділ «Практична вправа»Завдання: Створити архів домашньої папки та запланувати це завдання.
- Створіть архів вручну:
Terminal window tar -czf ~/my_backup.tar.gz ~ --exclude=*.gz 2>/dev/null - Перевірте розмір архіву:
Terminal window du -sh ~/my_backup.tar.gz - Додайте завдання в
crontab -e, щоб бекап робився кожну неділю о 3-й ранку:0 3 * * 0 tar -czf /tmp/home_backup.tar.gz /home/$USER 2>/dev/null - Перевірте, що запис з’явився:
Terminal window crontab -l
Критерії успіху: Архів створений, а в розкладі cron з’явився новий запис.
Підсумок
Розділ «Підсумок»- Cron — надійна класика планування.
- Systemd timers — сучасний контроль та логування.
- tar — стандарт пакування даних.
- rsync — ефективна синхронізація.
- Бекап не існує, поки ви не спробували його відновити.
Трек «Операції» завершено! Ви опанували всі ключові навички адміністрування Linux, необхідні для впевненої роботи з Kubernetes та сертифікації LFCS.