Лабораторна робота 3
Тема: Автоматизація задач в ОС Linux засобами Bash та cron
Мета: Отримати практичні навички автоматизації задач у Linux, налаштування shell-середовища, створення Bash-скриптів та планування їх виконання за допомогою cron.
Завдання роботи
- Налаштування середовища Bash (bashrc) (Дозволяється також налаштування zshrc).
- Відкрити файл конфігурації
~/.bashrcу текстовому редакторі (nano ~/.bashrcабоvi ~/.bashrc). - Створити функцію для відображення поточної гілки Git:
parse_git_branch() { git status | grep "On branch" | awk '{print $3}' } - Налаштувати змінну
PS1так, щоб у терміналі відображались:- Поточний час (
\t) - Поточна директорія (
\w) - Поточна git-гілка
- Поточний час (
- Застосувати зміни командою
source ~/.bashrc. - Перевірити роботу prompt у git-репозиторії
- Створити папку
~/lab_3/project-1. - Ініціалізувати новий гіт репозиторій
git init. - Перевірити роботу терміналу.
- Створити папку
- Відкрити файл конфігурації
- Створення скрипта резервного копіювання.
- У директорії
~/lab_3створити файлbackup.sh. - Додати shebang:
#!/bin/bash. - Реалізувати створення архіву директорії (наприклад,
~/lab_3) з додаванням дати:
tar -czf backup_$(date +"%Y%m%d_%H%M%S").tar.gz ~/lab_3 - Створити папку
~/lab_3/backupsта переміщувати архів туди. - Додати видалення архівів старших за 1 хвилину:
find ~/lab_3/backups -type f -mmin +1 -delete - Зробити файл виконуваним:
chmod +x backup.sh. - Перевірити роботу скрипта вручну.
- У директорії
- Моніторинг використання дискового простору.
- Створити файл
disk_monitor.sh. - Отримати дані використання диску командою
df -h. - За допомогою
grepтаawkвизначити відсоток використання кореневого розділу. - Якщо використання більше 80% — записати попередження у файл
disk.log:echo "$(date) WARNING: Disk usage above 80%" >> disk.log - Зробити скрипт виконуваним та протестувати. Під час тестування змінювати 80% до 5% щоб отримати запис.
- Створити файл
- Створення системного звіту.
- Планування виконання скриптів за допомогою cron.
- Відкрити планувальник задач:
crontab -e. - Додати виконання одного зі створених скриптів кожну хвилину:
Важливо: У скрипті потрібно використовувати абсолютні шляхи.* * * * * /home/user/lab_3/backup.sh - Перевірити список задач командою
crontab -l. - Перевірити створення логів або архівів через 2–3 хвилини.
- Відкрити планувальник задач:
- Встановити пакет
treeі зробити скріншот виконання у директорії~/lab_3. - Створення процессів
- Створити новий процес командою
ping nubip.edu.ua(або іншою на вибір). - Перевести поточний процес у background натиснувши CTRL + Z.
- Перевірити background jobs командою
jobs. - Написати команду
fg %1. Для переведення команди ping назад у foreground. - Завершити процес, натиснувши CTRL + C.
- Перевести потік виконання команди ping в null щоб прибрати вивід команди
ping nubip.edu.ua > /dev/null - Запустити команду ping як фоновий процес
Тут командаping nubip.edu.ua > /dev/null & echo "ping in foreground"pingбуде background job, аechoforeground. Можна також написатиping nubip.edu.ua > /dev/null &для запуску background job без echo. - Перевірити стан процесу командою
jobs. - Переглянути командою
psактивні процеси. - Завершити процес командою kill PiD.
- Створити новий процес командою
Необхідне програмне забезпечення
- Комп’ютер з встановленою операційною системою Linux (наприклад, Ubuntu) або Linux-середовище через WSL чи VirtualBox.
- Термінал Linux.
- Встановлений Git.
Короткий опис виконання роботи
У ході лабораторної роботи студент налаштовує середовище Bash, змінюючи конфігураційний файл .bashrc для відображення додаткової інформації в терміналі. Після цього створюються Bash-скрипти для резервного копіювання даних, моніторингу використання дискового простору та формування системного звіту.
Отримані скрипти тестуються вручну, після чого налаштовується автоматичне виконання за допомогою планувальника задач cron. Особлива увага приділяється використанню умовних операторів, обробці тексту за допомогою grep та awk, а також логуванню результатів виконання.
Результат виконання роботи
У результаті виконання лабораторної роботи студент набуває практичних навичок автоматизації задач у Linux, створення та налаштування Bash-скриптів, роботи з логами, моніторингу системних ресурсів та планування задач за допомогою cron.
Контрольні питання для самоперевірки
- Для чого використовується файл
.bashrc? - Що таке змінна
PS1і для чого вона застосовується? - Як зробити Bash-скрипт виконуваним?
- Яке призначення команди
chmod? - Що таке shebang (
#!/bin/bash)? - Як працює планувальник задач cron?
- Яка структура запису в crontab?
- Як здійснюється перенаправлення виводу у файл?
- Яким чином можна обробляти текст у Linux за допомогою
grepтаawk?
Критерії оцінювання
Максимальна кількість балів — 5 балів
| N | Кількість балів | Критерій |
|---|---|---|
| 1 | 0 | Лабораторну роботу не здано |
| 2 | 2 | Виконано частину завдань, скрипти працюють частково або відсутнє налаштування cron |
| 3 | 3 | Усі основні завдання виконані, але студент частково орієнтується у поясненні коду |
| 4 | 4 | Усі завдання виконані коректно, скрипти працюють, cron налаштований |
| 5 | 5 | Усі завдання виконані, студент впевнено пояснює виконану роботу |
- 22 серпня 2023, 20:56
Шрифти
Розмір шрифта
Колір тексту
Колір тла
Кернінг шрифтів
Видимість картинок
Інтервал між літерами
Висота рядка
Виділити посилання
Вирівнювання тексту
Ширина абзацу