====== Администрирование операционных систем UNIX ====== ===== Программа курса ===== * [[http://www.specialist.ru/course/yun1-b|Linux (CentOS/Debian). Уровень 1. Основы администрирования и безопасности]] * [[http://www.specialist.ru/course/fbsd1-b|FreeBSD. Уровень 1. Основы администрирования и безопасности]] ===== Модуль 0. Подготовка стенда в классе. ===== * Узнать свой номер стенда * Удалить виртуалки * Удалить профили putty * Отключить не используемые адаптеры * Записать логин пароль и IP (сообщить преподавателю) рабочей станции * Проверить наличие дистрибутивов и образов ===== Модуль 1 (4). Выбор дистрибутива, установка и анализ системы ===== ==== Теория ==== === Выбор дистрибутива === * [[https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D0%BE%D0%BB%D0%BB%D0%BC%D0%B0%D0%BD,_%D0%A0%D0%B8%D1%87%D0%B0%D1%80%D0%B4_%D0%9C%D1%8D%D1%82%D1%82%D1%8C%D1%8E|Столлман, Ричард Мэттью]] * [[https://ru.wikipedia.org/wiki/%D0%A2%D0%BE%D1%80%D0%B2%D0%B0%D0%BB%D1%8C%D0%B4%D1%81,_%D0%9B%D0%B8%D0%BD%D1%83%D1%81|Торвальдс, Линус]] * {{:which_linux_distribution_is_the_best.pdf|Какой дистрибутив Linux самый лучший?}} * [[http://distrowatch.com/|DistroWatch - обзор дистрибутивов Linux]] * [[https://ru.wikipedia.org/wiki/Debian|Debian - Википедия]] * [[https://bits.debian.org/2018/02/debian-linuxjournal-readers-choice-award.html|Debian won Linux Journal's Readers' Choice Award for Best Linux Distribution!]] * [[https://wiki.debian.org/LTS|Debian Long Term Support]] * [[https://ru.wikipedia.org/wiki/CentOS|CentOS - Википедия]] * [[https://ru.wikipedia.org/wiki/Ubuntu|Ubuntu - Википедия]] * [[https://ru.wikipedia.org/wiki/Gentoo_Linux|Gentoo Linux - Википедия]] * [[https://ru.wikipedia.org/wiki/FreeBSD|FreeBSD - Википедия]] === Оборудование === * [[https://ru.wikipedia.org/wiki/X86|Архитектура процессора x86 - Википедия]] * [[https://ru.wikipedia.org/wiki/SATA|Serial ATA - Википедия]] * [[https://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D1%82%D0%B5%D0%B2%D0%B0%D1%8F_%D0%BF%D0%BB%D0%B0%D1%82%D0%B0|Сетевая плата - Википедия]] === Системное ПО === * [[https://ru.wikipedia.org/wiki/%D0%AF%D0%B4%D1%80%D0%BE_%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%BE%D0%B9_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B|Ядро операционной системы - Википедия]] * [[https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B3%D1%80%D1%83%D0%B6%D0%B0%D0%B5%D0%BC%D1%8B%D0%B9_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C_%D1%8F%D0%B4%D1%80%D0%B0|Загружаемый модуль ядра]] * [[https://ru.wikipedia.org/wiki/%D0%94%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80|Драйвер - Википедия]] * [[https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81_%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8_Linux|Процесс загрузки Linux - Википедия]] * [[http://www.freebsd.org/doc/ru/books/handbook/boot.html|Процесс загрузки FreeBSD - Handbook]] === Прикладное ПО === * [[https://ru.wikipedia.org/wiki/%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0|Файловая система - Википедия]] * [[https://ru.wikipedia.org/wiki/%D0%94%D0%B5%D0%BC%D0%BE%D0%BD_%28%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%29|Демон — компьютерная программа - Википедия]] ==== Лабораторные работы ==== === 1.1 Загрузка актуального дистрибутива === Задание: выяснить какие бывают, способы загрузки и варианты установки дистрибутивов * [[https://www.centos.org/|CentOS]] * [[https://www.debian.org/index.ru.html|Debian]] * [[https://www.gentoo.org/|Gentoo]] * [[https://www.freebsd.org/|FreeBSD]] === 1.2 Установка системы === Задание: - установить систему, не менять значения по умолчанию в процессе инсталляции - добавить пользователя student/password - в linux установить sshd * [[Инсталляция системы Linux]] * [[Инсталляция системы FreeBSD]] Задание для преподавателя: - установить CentOS - установить Ubuntu18 (netplan) Задание на дом: * [[https://youtu.be/5Y67Q7um1WU|Видео урок: Корпоративный WebVPN на основе прокси-сервера Squid]] === 1.3 Анализ оборудования системы === Задание: найти информацию о процессоре, памяти, дисках и сетевых платах * [[Анализ оборудования в Linux]] * [[Анализ оборудования в FreeBSD]] === 1.4 Анализ ядра, модулей и дистрибутива === Задания: - выяснить версию ядра - выяснить, какие модули ядра загружены (например, для оборудования) - выяснить дистрибутив (для linux) * [[Управление ядром и модулями в Linux]] * [[Управление ядром и модулями в FreeBSD]] * [[Выбор дистрибутива Linux]] === 1.5 Анализ процессов в системе === Задание: выяснить, запущен ли сервис sshd * [[Процессы UNIX#Команды мониторинга процессов]] * Команда [[Команды фильтры#grep]] === 1.6 Управление загрузчиком системы === Задание для преподавателя: - восстановить забытый пароль (альтернативно можно показать ​исправление fstab в модуле про ФС, или, загрузка в однпользовательском режиме для переноса /var на другой диск) * [[Использование загрузчика GRUB]] * [[Использование загрузчика LOADER]] ==== Вопросы ==== - Что общего и в чем разница между Linux и UNIX? - Что такое Source-based, Binary based, Rolling release, LTS дистрибутивы? - Назовите этапы загрузки системы - Какие команды позволят определить аппаратные ресурсы системы? - Какие команды помогут определить версию ядра и дистрибутив системы? - Для чего нужны модули ядра? - Для чего служат переменные ядра? ===== Модуль 2 (5). Настройка и тестирование сети ===== ==== Теория ==== * [[https://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D1%82%D0%B5%D0%B2%D0%B0%D1%8F_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C_OSI|Сетевая модель OSI - Википедия]] * [[https://ru.wikipedia.org/wiki/Ethernet|Ethernet - Википедия]] * [[https://ru.wikipedia.org/wiki/TCP/IP|TCP/IP - Википедия]] ==== Лабораторные работы ==== См. /* === 2.0 Настроить маршрут с рабочей станции в сеть стендов === C:\>route -p add 172.16.1.0 mask 255.255.255.0 10.N.M.252 */ примечание, если не в комплексе Радио === 2.1 Команды для настройки сети === Задание: - выяснить состояние сетевых интерфейсов в системе, назначить им ip/mask/gate - выяснить состояние переменных ядра отвечающих за forwarding ip пакетов и базовое значение ttl * [[Настройка сети в Linux#Команды для настройки]] сети в Linux * [[Настройка сети в FreeBSD#Команды для настройки]] сети в FreeBSD === 2.2 Команды для диагностики сети === Задание: используя настроенную сетевую подсистему ядра проверить ее функционирование и подключиться к системе по протоколу ssh * [[Настройка сети в Linux#Команды для диагностики]] сети в Linux * [[Настройка сети в FreeBSD#Команды для диагностики]] сети в FreeBSD === 2.3 Файлы конфигурации сети === Задание: отредактировать файлы конфигурации сети используя любой тестовый редактор, перезагрузить систему проверить работу сети после перезагрузки системы. * [[Текстовые редакторы ed, sed, vi, vim#Редактор vi, vim]] ([[https://youtu.be/r8e7F46un7A|Видео урок]]) * [[Текстовый редактор nano]] * [[Настройка сети в Linux#Файлы конфигурации]] сети в Linux * [[Настройка сети в Linux#Файлы конфигурации Debian/Ubuntu16]] * [[Настройка сети в Linux#Файлы конфигурации CentOS/SL/RHEL]] * [[Настройка сети в Linux#Файлы конфигурации Ubuntu18]] * [[Настройка сети в Linux#Файлы конфигурации Gentoo]] * [[Настройка сети в FreeBSD#Файлы конфигурации]] сети в FreeBSD === 2.4 Дополнительные утилиты для тестирования сети === Задание: посмотреть какой порт "слушает" сервис ssh * [[Настройка сети в Linux#Команды для диагностики]] сетевой подсистемы в Linux Задание: посмотреть содержимое трафика ssh командой tcpdump * [[Утилиты для тестирования сети]] Задание: проверить работу клиента DNS * [[Сервис DNS#Утилиты тестирования DNS]] ==== Вопросы ==== - Какие команды используются для управления/диагностики сетевых параметров системы? - Какие команды используются для тестирования настроек DNS? - Какие команды используются для анализа открытых сетевых портов системы? - Что общего между файлами /etc/resolv.conf и /etc/hosts? - Какие варианты управления файлом /etc/resolv.conf могут быть? ===== Модуль 3 (6). Система безопасности UNIX ===== ==== Теория ==== * [[https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BD%D0%B0%D1%8F_%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C|Компьютерная безопасность - Википедия]] * [[https://ru.wikipedia.org/wiki/%D0%A3%D1%87%D1%91%D1%82%D0%BD%D0%B0%D1%8F_%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C|Учётная запись - Википедия]] * [[Система безопасности UNIX#Управление маской доступа]] * [[http://help.ubuntu.ru/wiki/%D1%81%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%BD%D1%8B%D0%B5_%D0%BF%D1%80%D0%B0%D0%B2%D0%B0_unix|Права доступа Unix, SUID, SGID, Sticky биты]] ==== Лабораторные работы ==== === 3.1 Управление пользователями в системе === Задание: - выяснить, какие учетные записи присутствуют в системе - какие из них можно использовать для подключения по ssh - создать пользователя userX, указав его ФИО, shell и пароль * [[Управление учетными записями в Linux]] * [[Управление учетными записями в FreeBSD]] === 3.2 Управление правами пользователей в системе === Задание: познакомиться с утилитами umask, chmod, chown * [[Система безопасности UNIX]] Задание: назначить userX администратором системы, а затем, лишить его этих полномочий. * [[Управление учетными записями в Linux]] * [[Управление учетными записями в FreeBSD]] * Команда su (gentoo wheel) * [[Пакет sudo]] * [[https://youtu.be/M_aRKbMndfU|Видео урок: команды su и sudo]] Задание: отключить текущую сессию бывшего администратора (можно в теме управления сервисами) * [[Сигналы]] ==== Вопросы ==== - В каком виде хранится пароль пользователя в системной базе данных ? - Для чего предназначены команды umask, chmod, chown? - Что определяет маска 640 или -rw-r----- для файла? - Что обозначает бит "x" для файла и каталога - Что обозначает значение атрибута EUID=0 для процесса? - Что обозначает бит "s" для файла, содержащего программу? - Для чего предназначены команды su и sudo? ===== Модуль 4 (7). Управление ПО ===== ==== Теория ==== === Сборка и установка ПО === * [[https://ru.wikipedia.org/wiki/%D0%98%D1%81%D1%85%D0%BE%D0%B4%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%B4|Исходный код - Википедия]] * [[https://ru.wikipedia.org/wiki/%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D0%BC%D1%8B%D0%B9_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C|Исполнимый модуль - Википедия]] * [[https://ru.wikipedia.org/wiki/Make|Утилита make]] * [[https://ru.wikipedia.org/wiki/Portage|Cистема управления портами в Gentoo Linux - Википедия]] * [[https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D1%80%D1%82%D1%8B_FreeBSD|Cистема управления портами в FreeBSD - Википедия]] * [[https://ru.wikipedia.org/wiki/Dpkg|Cистема управления пакетами в Debian - Википедия]] * [[https://ru.wikipedia.org/wiki/RPM|Cистема управления пакетами в Red Hat - Википедия]] * [[https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%BF%D0%BE%D0%B7%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%B9|Репозиторий - Википедия]] * [[https://ru.wikipedia.org/wiki/APT|Advanced Packaging Tool - Википедия]] * [[https://ru.wikipedia.org/wiki/Yellow_dog_Updater,_Modified|Yellow dog Updater, Modified - Википедия]] === Обновление ПО === * [[https://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D1%82%D1%87|Патч - Википедия]] * [[http://www.ubuntu.com/usn/|Ubuntu security notices]] * [[http://www.ubuntu.com/info/release-end-of-life|Ubuntu release end of life]] * [[https://www.freebsd.org/ru/security/advisories.html|Бюллетени безопасности FreeBSD]] * [[https://www.freebsd.org/security/|FreeBSD Security Information]] * [[http://www.asterisk.org/downloads/security-advisories|Asterisk Security Advisories]] ==== Лабораторные работы ==== === 4.1 Сборка и установка ПО из исходных текстов === * [[Установка ПО из исходных текстов]] ([[https://youtu.be/oz3WCD-dDpc|Видео урок]]) Задание для преподавателя: * [[Установка ПО из исходных текстов#Пример установки текстового браузера]] === 4.2 Базовое ПО классических UNIX систем === * [[Управление базовым ПО в FreeBSD]] (теоретический материал) === 4.3 Сборка и установка ПО из портов === Для FreeBSD /* Задание для преподавателя: установить сервис asterisk с минимальным количеством опций * 1. Установить "чистый" экземпляр FreeBSD **предыдущего релиза** и дерево портов из дистрибутива * 2. Установить переменные окружения BATCH (или все зависимости) и DISABLE_VULNERABILITIES (если потребуется) * 3. Установить /usr/ports/net/asterisk11 из портов с опциями GCC NCURSES GSM */ см. примечание * [[Управление дополнительным ПО в FreeBSD#Установка ПО из портов]] * Установка ПО из [[Управление ПО в Linux#Portage]] === 4.4 Установка ПО из скомпилированных пакетов === * [[https://eax.me/checkinstall/|Как создать бинарный пакет с помощью CheckInstall]] Задание: преподавателю - текстовый браузер lynx, студентам sudo * FreeBSD [[Управление дополнительным ПО в FreeBSD#Использование команды pkg]] * Linux [[Управление ПО в Linux#Использование команды dpkg]] * Linux [[Управление ПО в Linux#Использование менеджера пакетов APT]] * Linux [[Управление ПО в Linux#Использование команды rpm]] * Linux [[Управление ПО в Linux#Использование менеджера пакетов YUM]] * Linux [[Управление ПО в Linux#Snap]] === 4.5 Обновление ПО внутри релиза === Задание: установить необходимые обновления в системе * [[Управление ПО в Linux#Использование менеджера пакетов APT]] * [[Управление ПО в Linux#Использование менеджера пакетов YUM]] * [[Обновление системы и базового ПО в FreeBSD]] (с использованием **freebsd-update**) * [[Обновление дополнительного ПО в FreeBSD]] (с использованием **pkg** и **вручную/portmaster/portupgrade**) === 4.6 Обновление системы до актуального релиза === * [[https://youtu.be/ZDSITYL0aVE|Видеоурок "Обновление FreeBSD до актуального релиза"]] ==== Вопросы ==== - Какие недостатки установки ПО "вручную" из исходных текстов? - Какие достоинства и недостатки установки ПО из Gentoo portage или FreeBSD ports? - Какие команды используются для установки пакетов в Debian, CentOS и FreeBSD? - Какие команды используются для работы с репозиториями ПО Debian, CentOS и FreeBSD? - В чем опасность использования сторонних репозиториев с ПО? - Какие проблемы могут возникнуть при обновлении системы до следующего релиза? ===== Модуль 5 (8). Управление сервисами ===== ==== Теория ==== === Управление запуском ПО === * [[https://ru.wikipedia.org/wiki/Init|Cистема инициализации UNIX init и ее альтернативы в Linux - Википедия]] * [[https://wiki.gentoo.org/wiki/OpenRC|OpenRC - Gentoo Wiki]] * [[https://ru.wikipedia.org/wiki/Systemd|Systemd - Википедия]] * [[http://www.freebsd.org/doc/ru/books/handbook/boot-init.html|Инициализация управления процессами FreeBSD - Handbook]] === Управление сообщениями сервисов === * [[https://ru.wikipedia.org/wiki/Syslog|Syslog - Википедия]] ==== Лабораторные работы ==== === 5.1 Управление запуском сервисов === Задание: - с помощью сигналов отключить пользователя userX - включить/выключить сервис clamav из автозагрузки - добавить в автозагрузку свой собственный сервис * [[Сигналы]] * [[Сервис SSH#Аутентификация с использованием ключей ssh]] # ssh-keygen # ssh-copy-id userX@gate.isp.un * Linux FreeBSD [[Управление сервисами в Linux#Система загрузки rc.local]] * [[https://youtu.be/GxVmukxVUo0|Видео урок: Программирование на sh]] * [[Средства программирования shell#Примеры использования скриптов sh в системах загрузки]] * Linux [[Управление сервисами в Linux#Система загрузки SysV]] * Linux [[Управление сервисами в Linux#Система загрузки OpenRC]] * Linux [[Управление сервисами в Linux#Система загрузки Systemd]] * Linux [[Управление сервисами в Linux#Универсальный скрипт service]] * FreeBSD [[Управление сервисами в FreeBSD#Система загрузки rc.NG]] === 5.2 Регистрация действий сервисов === Задание: - выяснить, куда пишутся журнальные сообщения от сервисов - научиться отправлять журнальные сообщения из командной строки * [[Локализация системы|Локализация временной зоны]] * [[Сервис NTP|Установка даты и времени]] * [[Регистрация событий в FreeBSD]] * [[Регистрация событий в Linux]] # cat /etc/ssh/sshd_config ... LogLevel... ... ==== Вопросы ==== - Почему вместо rc.local стали применять системы инициализации/загрузки? - Что делает команда init n ? - Какие команды используются для вывода списков управляемых сервисов в системах инициализации SystemV, OpenRC, Systemd, rcNG? - Как включить/отключить автоматический запуск сервиса? - Какова причина наличия типа сообщения в системах syslog? - Что нужно сделать, что бы получать больше отладочной информации о работе сервиса? ===== Модуль 6 (9). Управление файловыми системами ===== ==== Теория ==== * [[https://ru.wikipedia.org/wiki/%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0|Файловая система - Википедия]] * [[https://habrahabr.ru/post/327572/|Сравнение структур разделов GPT и MBR]] * [[https://ru.wikipedia.org/wiki/Unix_File_System|Unix File System - Википедия]] * [[http://ru.wikipedia.org/wiki/Ext2|Ext2 - Википедия]] * [[http://ru.wikipedia.org/wiki/Ext4|Ext4 - Википедия]] * [[http://ru.wikipedia.org/wiki/ReiserFS|ReiserFS - Википедия]] * [[https://ru.wikipedia.org/wiki/LVM|LVM - Википедия]] * [[http://wolandblog.com/601-zfs-novyj-vzglyad-na-fajlovye-sistemy/|ZFS — новый взгляд на файловые системы]] ==== Лабораторные работы ==== === 6.1 Анализ конфигурации дисковой подсистемы === Задание: - Проанализировать конфигурацию дисковой подсистемы - Смонтировать привод CDROM * [[Управление файловыми системами в Linux]] * [[Управление файловыми системами в FreeBSD]] === 6.2 Подключение новых дисков к системе === Задание: - Подключить дополнительный жесткий диск к системе - Определить наличие новых дисков в системе - Создать файловую систему на новом диске и примонтировать к каталогу /disk2 * [[Управление файловыми системами в Linux#Добавление дисков в Linux]] * [[Управление файловыми системами в FreeBSD#Добавление дисков в FreeBSD]] Задание для преподавателя: - С помощью линка и [[Пакет RSYNC]] перенести на второй диск каталог /var/ или /home/ [[Использование загрузчика GRUB]] - Добавить 2-й диск, изменив номер первого в системе - Продемонстрировать загрузку в одно пользовательском режиме для исправления fstab - Продемонстрировать использование UUID дисков - В Linux LVM расширить логический том корневого раздела за счет нового диска - В FreeBSD ZFS добавить раздел RAID1 * [[Управление файловыми системами в Linux#Использование LVM]] * [[Управление файловыми системами в FreeBSD#Использование ZFS]] ([[https://youtu.be/O4IHUvCwH-g|Видеоурок]]) ==== Вопросы ==== - Какие команды используются для монтирования/размонтирования устройств? - Почему следует монтировать устройства в пустые каталоги? - Что может помешать размонтированию устройств? - В чем преимущество использования таблицы разделов GPT по сравнению с MBR? - Какая файловая система самая лучшая? - В чем преимущество использования UUID разделов вместо имен устройств? - В чем преимущество использования LVM и ZFS по сравнению с классической схемой использования дисков? - В каком файле конфигурации определяются монтируемые при загрузке файловые системы? ===== Модуль 7 (10). Резервное копирование и восстановление ===== ==== Теория ==== * [[https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B7%D0%B5%D1%80%D0%B2%D0%BD%D0%BE%D0%B5_%D0%BA%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5|Резервное копирование - Википедия]] * [[Команда dd]] * [[Команды dump restore]] * [[Команда cpio]] * [[Команда tar]] * [[http://rdiff-backup.nongnu.org/|rdiff-backup]], [[http://ashep.org/2012/rezervnoe-kopirovanie-pri-pomoshhi-rdiff-backup/|Резервное копирование при помощи rdiff-backup]] * [[https://habrahabr.ru/post/56796/|Спасаем данные в Linux с помощью ddrecovery]] ==== Success Story ==== * [[http://www.softjoys.ru/|СофтДжойс - Восстановление данных]] ==== Лабораторные работы ==== === 7.1 Знакомство с командой tar === * [[Команда tar]] === 7.2 Создание архива на удаленной системе === Задание: предоставить пользователю userX возможность архивного копирования каталога /etc/ на backup сервер по протоколу ssh * [[Пакет sudo]] * [[Команда tar]] === 7.3 Периодическое выполнение задач архивирования === Задание для преподавателя: написать сценарий для периодического копирования каталога /etc/ на backup сервер по протоколу ssh * [[Локализация системы#Локализация временной зоны]] * [[Сервис NTP#Установка даты и времени]] * Команда tar [[Команда tar#Сценарий архивирования каталогов с использованием ssh]] * [[Сервис SSH#Аутентификация с использованием ключей ssh]] * [[Планирование выполнения заданий в FreeBSD]] * [[Планирование выполнения заданий в Linux]] * [[Сервис atrun]] ==== Вопросы ==== - Что обозначают ключи "c", "t", "x", "z", "f" в команде tar - Что нужно для использования ssh подключений в сценариях выполняемых периодически? - Как лучше оформить сценарии, выполняющиеся раз в минуту, час, день, неделю, месяц? - Как запрограммировать одноразовый запуск сценария в определенное время? ===== Модуль 8 (11). Анализ производительности и оптимизация системы ===== ==== Теория ==== * [[https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B8|Тестирование производительности - Википедия]] * [[https://ru.wikipedia.org/wiki/%D0%9D%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BE%D1%87%D0%BD%D0%BE%D0%B5_%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5|Нагрузочное тестирование - Википедия]] * [[http://www.brendangregg.com/linuxperf.html|Linux Performance]] * [[https://medium.com/@chrishantha/linux-performance-observability-tools-19ae2328f87f|Linux Performance Observability Tools]] * [[https://www.freebsd.org/doc/ru/books/handbook/kernelconfig-custom-kernel.html|Зачем собирать собственное ядро?]] * [[https://help.ubuntu.com/community/Kernel/Compile|Ubuntu Kernel/Compile]] * [[https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel|BuildYourOwnKernel Ubuntu Wiki]] ==== Лабораторные работы ==== === 8.1 Анализ производительности системы === * [[Пакет OpenSSL#Проверка производительности CPU]] в OpenSSL # sysbench --help # sysbench --test=cpu run === 8.2 Стресс тестирование и выявление нагрузки на CPU === * [[Утилита john]] * [[Утилита ps]] * [[Процессы UNIX#top]] $ stress -c 6 -t 60s $ top $ ps ax -o pcpu,pid,user,command --sort pcpu $ uptime linux$ cat /proc/loadavg === 8.3 Стресс тестирование и выявление нагрузки на RAM === $ stress -m 2 --vm-bytes 256M -t 60s $ ps ax -o vsize,pid,user,command --sort vsize === 8.4 Стресс тестирование и выявление нагрузки на HDD === $ stress -d 2 --hdd-bytes 2GB $ while true; do head -c 1G myfile;done $ while true; do grep -r `openssl rand -base64 12` /usr /var; done linux# iotop linux# iostat freebsd$ top -m io -o total === 8.5 Тестирование производительности и выявление нагрузки на сеть === * [[Утилита iPerf]] # trafshow -n linux# nethogs linux# ss -pan4 | grep 5001 freebsd# sockstat -4 | grep 5001 === 8.6 Оптимизация производительности или ее тестирование на реальной задаче === * [[https://youtu.be/dIqaW47WXf8|Видео урок: Установка Gentoo и сборка ПО из исходных текстов]] * [[https://youtu.be/QFoGnnB3WPg|Видео урок: Сборка ядра в linux]] * [[Управление ядром и модулями в Linux]] * [[https://youtu.be/wlDGgGikyWI|Видео урок: Сборка ядра в FreeBSD]] * [[Управление ядром и модулями в FreeBSD]] ==== Вопросы ==== - Перечислите основные ресурсы системы. - Перечислите команды, позволяющие найти критический ресурс. ===== Модуль 9 (12). Использование Linux/FreeBSD в качестве рабочей станции пользователя ===== ==== Теория ==== * [[https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D0%BA%D1%81%D1%82%D0%BE%D0%B2%D1%8B%D0%B9_%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F|Текстовый интерфейс пользователя - Википедия]] * [[http://val.bmstu.ru/openvideo/history_unix_write_mail_talk.html|Видео: Как пользователи использовали UNIX :)]] * [[https://ru.wikipedia.org/wiki/%D0%9B%D0%BE%D0%BA%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D1%8F|Локализация программного обеспечения - Википедия]] * [[https://ru.wikipedia.org/wiki/%D0%93%D1%80%D0%B0%D1%84%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F|Графический интерфейс пользователя - Википедия]] * [[https://ru.wikipedia.org/wiki/X_Window_System|X Window System - Википедия]] ==== Лабораторные работы ==== === 9.1 Текстовый интерфейс === Задание: настроить текстовый интерфейс пользователя !!! RAM не менее 1Gb * [[Настройка командных интерпретаторов]] * [[Локализация окружения]] * [[Локализация консоли]] * Многооконный текстовый интерфейс linux# apt install gpm freebsd# service moused onestart * Для демонстрации, запустить процесс процесс установки GUI * [[Пакет screen]] ([[https://youtu.be/YXSC7KeIq3E|Видео урок]]) === 9.2 Графический интерфейс пользователя === Задание: настроить графический интерфейс пользователя * [[Инсталяция системы в конфигурации Desktop]] (Установка X сервера, менеджера дисплеев, оконного менеджера и клиентских программ) * [[Воспроизведение звука]] * [[Воспроизведение видео]] Задание для преподавателя: за время установки GUI у слушателей продемонстрировать: * [[Сервис SSH|SSH вместо XDM]] на примере xbill * xorg, xorg.conf, startx, twm на примере doom * [[Игровые возможности]] ==== Вопросы ==== - Как запустить долговременный интерактивный процесс на удаленной системе, что бы можно было отключиться до его окончания? - Что определяет язык интерфейса пользователя в UNIX? - Назовите основные компоненты системы XWindow - Что общего между getty, sshd и xdm?