Це машинний переклад, який може містити помилки!
Якщо ви виконували одне й те саме завдання втретє, настав час автоматизувати його. Скриптування – це дозволити машині виконувати нудну роботу за вас, швидше та не забуваючи нічого.
Чому автоматизувати?
Деякі завдання в ІТ-експлуатації виконуються часто:
- Оновлювати сервери
- Створювати користувачів
- Робити резервні копії
- Перезапускати сервіси після оновлення
- Перевіряти, чи працюють сервіси
Виконання цих завдань вручну щоразу займає час, і легко забути якийсь крок. Скрипт робить те саме щоразу, не скаржачись.
Bash: Скриптування в Linux
Bash є оболонкою (терміналом) у більшості дистрибутивів Linux, і воно також може виконувати скрипти. Bash-скрипт — це просто текстовий файл з командами, які виконуються послідовно.
Ваш перший скрипт
Створіть файл з назвою oppdater.sh:
#!/bin/bash
# Оновіть список пакетів та встановіть оновлення
echo "Оновлюється система..."
sudo apt update
sudo apt upgrade -y
echo "Готово!"
Зробіть файл виконуваним та запустіть його:
chmod +x oppdater.sh
./oppdater.sh
# Зробіть скрипт виконуваним
# Запустіть скрипт
#!/bin/bash
Перший рядок називається shebang. Він повідомляє операційній системі, що файл потрібно виконувати за допомогою Bash. Без нього система не знає, яку програму використовувати для інтерпретації скрипту.
Змінні та вхідні дані
#!/bin/bash
BRUKERNAVN=$1
if [ -z "$BRUKERNAVN" ]; then
echo "Використання: ./lag_bruker.sh <ім'я_користувача>"
exit 1
fi
sudo adduser "$BRUKERNAVN"
sudo usermod -aG sudo "$BRUKERNAVN"
echo "Користувач $BRUKERNAVN створений з доступом sudo."
Тут скрипт приймає ім’я користувача як аргумент ($1 — це перший аргумент). Якщо ви запустите ./lag_bruker.sh ola, це створить користувача ola та надасть йому доступ sudo.
Корисні концепції Bash
| Концепція | Приклад | Що вона робить |
|---|---|---|
| Змінна | NAVN="Ola" | Зберігає значення |
| Аргумент | $1, $2 | Вхідні дані з командного рядка |
| If-перевірка | if [ -f "fil.txt" ]; then | Перевіряє наявність файлу |
| Цикл For | for f in *.log; do | Виконує дію для кожного файлу, що відповідає умові |
| Pipe (Конвеєр) | cat logg.txt \| grep "ERROR" | Передає вивід однієї команди на вхід іншій |
PowerShell: Скриптування у Windows
PowerShell – це відповідь Windows на Bash, але воно більш об’єктно-орієнтоване. Воно працює з об’єктами, а не лише з текстом, що робить його потужним для адміністрування Windows-систем.
Приклад: Перевірка дискового простору
# Перевірте вільний дисковий простір
Get-PSDrive -PSProvider FileSystem | Select-Object Name,
@{Name="Використано (ГБ)"; Expression={[math]::Round($_.Used / 1GB, 2)}},
@{Name="Вільний (ГБ)"; Expression={[math]::Round($_.Free / 1GB, 2)}}
Приклад: Встановлення програмного забезпечення за допомогою Winget
# Встановити декілька програм одночасно
winget install Mozilla.Firefox
winget install Microsoft.VisualStudioCode
winget install Git.Git
winget install Python.Python.3.12
Це набагато швидше, ніж завантажувати та встановлювати все вручну. Ви можете зберегти список у скрипті та запускати його кожного разу, коли налаштовуєте нову машину.
Завдання 1 - Створіть скрипт оновлення
Напишіть Bash-скрипт, який:
- Оновлює список пакетів
- Встановлює всі доступні оновлення
- Перезапускає Nginx (або іншу службу, яку ви використовуєте)
- Виводить повідомлення про завершення
Запустіть його на одній зі своїх ВМ і переконайтеся, що воно працює.
Завдання 2 - Автоматизуйте налаштування машини
Створіть PowerShell-скрипт (.ps1) або простий список команд winget install для всіх програм, які вам потрібні на новому ПК. Подумайте над:
- Які програми ви завжди встановлюєте?
- Чи можете ви також налаштувати деякі параметри за допомогою скрипту?
Наступного разу, коли ви налаштовуєте машину, просто запустіть скрипт замість того, щоб витрачати годину на ручне встановлення.
Підсумок
- Якщо ви робите щось більше ніж двічі, розгляньте можливість автоматизації цього
- Bash (Linux) та PowerShell (Windows) є найпоширенішими інструментами для скриптингу
- Bash-скрипти є текстовими файлами з командами, які виконуються послідовно
- PowerShell працює з об’єктами та є потужним для адміністрування Windows
- Змінні, аргументи, if-перевірки та цикли є основними будівельними блоками