+7 (812) 703-02-02 info@hse.spbstu.ru

CS-BASH. Автоматизация задач системного администратора ОС Linux

Длительность дисциплины: 24 ак.ч.


Аннотация

Целью изучения дисциплины «CS-BASH. Автоматизация задач системного администратора ОС Linux» является формирование у слушателей практических навыков в написании скриптов на языке командного интерпретатора Bash с использованием наиболее часто используемых консольных утилит ОС Linux.


Знания и умения, полученные в результате изучения

По окончании курса слушатели смогут:
• понимать структуру bash-скриптов и управлять их выполнением;
• пользоваться операторами условного выполнения команд;
• использовать циклы в скриптах;
• перенаправлять ввод-вывод консольных утилит и использовать перенаправление ввода-вывода в своих скриптах;
• использовать результат выполнения команд как парамеметры для других команд;
• организовывать код скриптов с использованием подпрограмм;
• создавать стартовые скрипты для системных сервисов;
• создавать скрипты, выполняемые при старте системы;
• настраивать выполнение скриптов по расписанию;
• использовать регулярные выражения простого и расширенного синтаксиса для поиска по тексту и обработки текстовой информации;
• использовать текстовой процессор awk для обработки текста;
• работать с потоковым редактированием текста средствами утилиты sed;
• использовать утилиты tr, cut, sort, uniq, grep для обработки текста;
• использовать в скриптах сервисные утилиты ОС Linux.


Содержание дисциплины

Тема 1. Создание скриптов на Bash
  • Файлы скриптов, общая структура и запуск в системе.
  • Переменные и параметры.
  • Условное выполнение.
  • Циклы.
  • Управление вводом и выводом.
  • Описание функций.
  • Выполнение скриптов при старте системы и по расписанию.
Лабораторные работы:
  • Обработка в скрипте переданных скрипту позиционных параметров.
  • Создание стартового скрипта systemd для системной службы.

Тема 2. Обработка текстовых данных средствами bash, grep, cut, tr, awk, sed.
  • Строковые преобразования средствами bash: расщепление строк; строковые подстановки.
  • Регулярные выражения: базовые регулярные выражения POSIX (BRE); 
  • расширенные регулярные выражения POSIX (ERE); 
  • использование фильтра строк grep с регулярными выражениями.
  • Фильтрация полей символов средствами cut.
  • Транслятор символов tr.
  • Текстовый процессор awk.
  • Потоковый редактор текста sed.
Лабораторные работы:
  • Создание системы контроля целостности конфигурационных файлов по списку шаблонов на основе регулярных выражений.
  • Написание скрипта, создающего отчет об успешных/неуспешных подключениях к сервису SSHD на основе его файлов журнала.
  • Написание скрипта, создающего отчет по HTTP-запросам к Web-серверу на основе его файлов журнала.

Тема 3. Сервисные утилиты.
  • Утилиты для работы с файлами: cat, file, stat, locate, find, dd, head, tail.
  • Утилиты для работы с текстом: grep, sort, uniq, paste, join, wc, comm, diff, patch, echo.
  • Криптографические функции: md5sum, sha1sum, gpg.
  • Архивирование и бэкап: tar, gzip/bzip2, rsync. 
  • Утилиты работы с процессами и сигналами: ps, jobs, fg, bg, kill, killall, trap, wait.
  • Работа с переменными окружения: set, export, env.
  • Фильтрация трафика: iptables, ufw, firewall-cmd.
Лабораторные работы:
  • Написание скрипта, генерирующего стойкие к взлому пароли.
  • Составление списка имеющихся в системе файлов с атрибутами SUID/SGID.
  • Создание и автоматическая проверка цифровой подписи для базы системы контроля целостности конфигурационных файлов.
  • Написание скрипта, блокирующего средствами пакетного фильтра узлы, запрашивающие у HTTP-сервера определенные URL-адреса.