Скриптинг с использованием Bash и PowerShell

Skip to content

Это машинный перевод текста, который может содержать ошибки!

Скрипты на Bash и PowerShell

Если вы уже третий раз выполняете одну и ту же задачу, пришло время автоматизировать её. Написание скриптов позволяет компьютеру выполнять скучную работу за вас — быстрее и без пропусков.

Зачем автоматизировать?

Некоторые задачи в сфере ИТ-эксплуатации выполняются часто:

  • Обновление серверов
  • Создание пользователей
  • Резервное копирование (создание бэкапов)
  • Перезапуск сервисов после обновления
  • Проверка работоспособности сервисов

Выполнение этих действий вручную каждый раз отнимает время и легко забыть какой-либо шаг. Скрипт выполняет то же самое каждый раз без нареканий.

Новичок в Proxmox или настройке ВМ?

[[Виртуализация Уровень 1 — Руководство по ВМ|🖥️ Виртуализация]] показывает, как создать и настроить виртуальную машину в Proxmox – вам нужна работающая ВМ для заданий в этом разделе.

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 "Usage: ./lag_bruker.sh <username>"
    exit 1
fi

sudo adduser "$BRUKERNAVN"
sudo usermod -aG sudo "$BRUKERNAVN"
echo "User $BRUKERNAVN created with sudo access."

Здесь скрипт принимает имя пользователя в качестве аргумента (первый аргумент — $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-скрипт, который:

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

Запустите его на одной из ваших виртуальных машин и убедитесь в том, что он работает.

У вас ещё не запущен Nginx или другая служба?

[[Docker Level 1 - Начало работы|🐳 Docker - Начало работы]] настроит контейнер Nginx, который можно использовать для этой задачи.

Легко Задание 2 — Автоматизация настройки компьютера

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

  • Какие программы вы всегда устанавливаете?
  • Можете ли вы также настроить некоторые параметры с помощью скрипта?

В следующий раз при настройке компьютера просто выполните скрипт вместо того, чтобы тратить час на ручную установку.

Резюме

  • Если вы делаете что-то более двух раз, подумайте об автоматизации этого процесса
  • Bash (Linux) и PowerShell (Windows) — самые распространенные инструменты для написания скриптов
  • Скрипты на Bash представляют собой текстовые файлы с командами, выполняемыми последовательно
  • PowerShell работает с объектами и является мощным инструментом для администрирования в Windows
  • Переменные, аргументы, проверки условий и циклы являются основными строительными блоками