Скриптування за допомогою Bash та PowerShell

Skip to content

Це машинний переклад, який може містити помилки!

Якщо ви виконували одне й те саме завдання втретє, настав час автоматизувати його. Скриптування – це дозволити машині виконувати нудну роботу за вас, швидше та не забуваючи нічого.

Чому автоматизувати?

Деякі завдання в ІТ-експлуатації виконуються часто:

  • Оновлювати сервери
  • Створювати користувачів
  • Робити резервні копії
  • Перезапускати сервіси після оновлення
  • Перевіряти, чи працюють сервіси

Виконання цих завдань вручну щоразу займає час, і легко забути якийсь крок. Скрипт робить те саме щоразу, не скаржачись.

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

Це набагато швидше, ніж завантажувати та встановлювати все вручну. Ви можете зберегти список у скрипті та запускати його кожного разу, коли налаштовуєте нову машину.

Easy Завдання 1 - Створіть скрипт оновлення

Напишіть Bash-скрипт, який:

  1. Оновлює список пакетів
  2. Встановлює всі доступні оновлення
  3. Перезапускає Nginx (або іншу службу, яку ви використовуєте)
  4. Виводить повідомлення про завершення

Запустіть його на одній зі своїх ВМ і переконайтеся, що воно працює.

Easy Завдання 2 - Автоматизуйте налаштування машини

Створіть PowerShell-скрипт (.ps1) або простий список команд winget install для всіх програм, які вам потрібні на новому ПК. Подумайте над:

  • Які програми ви завжди встановлюєте?
  • Чи можете ви також налаштувати деякі параметри за допомогою скрипту?

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

Підсумок

  • Якщо ви робите щось більше ніж двічі, розгляньте можливість автоматизації цього
  • Bash (Linux) та PowerShell (Windows) є найпоширенішими інструментами для скриптингу
  • Bash-скрипти є текстовими файлами з командами, які виконуються послідовно
  • PowerShell працює з об’єктами та є потужним для адміністрування Windows
  • Змінні, аргументи, if-перевірки та цикли є основними будівельними блоками