Это машинный перевод текста, который может содержать ошибки!
Скрипты на 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-скрипт, который:
- Обновляет список пакетов
- Устанавливает все доступные обновления
- Перезапускает Nginx (или другую службу, которая у вас запущена)
- Выводит сообщение при завершении работы
Запустите его на одной из ваших виртуальных машин и убедитесь в том, что он работает.
У вас ещё не запущен Nginx или другая служба?
[[Docker Level 1 - Начало работы|🐳 Docker - Начало работы]] настроит контейнер Nginx, который можно использовать для этой задачи.
Задание 2 — Автоматизация настройки компьютера
Создайте скрипт PowerShell (.ps1) или простой список команд winget install для всех программ, необходимых на новом ПК. Подумайте о следующем:
- Какие программы вы всегда устанавливаете?
- Можете ли вы также настроить некоторые параметры с помощью скрипта?
В следующий раз при настройке компьютера просто выполните скрипт вместо того, чтобы тратить час на ручную установку.
Резюме
- Если вы делаете что-то более двух раз, подумайте об автоматизации этого процесса
- Bash (Linux) и PowerShell (Windows) — самые распространенные инструменты для написания скриптов
- Скрипты на Bash представляют собой текстовые файлы с командами, выполняемыми последовательно
- PowerShell работает с объектами и является мощным инструментом для администрирования в Windows
- Переменные, аргументы, проверки условий и циклы являются основными строительными блоками