From 8a918c058c463c466b2ffeb7f0df4cda1a806fa5 Mon Sep 17 00:00:00 2001 From: protsenkovi Date: Wed, 21 Feb 2024 16:49:57 +0400 Subject: [PATCH] updates --- coordination.md | 34 + module1/01_bash/lection.md | 1798 ++++++++++++++++++ module1/01_bash/tasks.md | 5 +- module1/03_networking/lection.md | 3 +- module1/05_hash_ciphers_ssh_certs/tasks.md | 4 +- module1/11_cron_at/tasks.md | 22 +- module1/12_troubleshooting/lection.md | 48 +- module1/12_troubleshooting/tasks.md | 2 +- module1/for_tutor.md | 7 +- module2/00_bootloader/tasks.md | 5 +- module2/01_partitions_raid_lvm_fs/lection.md | 32 + module2/01_partitions_raid_lvm_fs/tasks.md | 16 +- module2/04_postfix_dovecot/lection.md | 22 +- module2/09_ansible/tasks.md | 2 +- 14 files changed, 1937 insertions(+), 63 deletions(-) create mode 100644 coordination.md create mode 100644 module1/01_bash/lection.md create mode 100644 module2/01_partitions_raid_lvm_fs/lection.md diff --git a/coordination.md b/coordination.md new file mode 100644 index 0000000..a062d4f --- /dev/null +++ b/coordination.md @@ -0,0 +1,34 @@ +Задания +https://git.ai.ssau.ru/myoffice/linux_tasks/ + +|Фамилия |Логин |IP для tabularasaX /24|IP для studX /24|соответствующие белые адреса для studX на которые проброшены порты: 22, 25, 80, 110, 143, 443, 465, 587, 993, 995|доменные имена для studX|IP для examX /24|IP для gwX /24|IP для keepalived /24|IP для proxmox n1 /24|IP для proxmox n2 /24|IP для exam2_X /24| +|---------------|------|----------------------|----------------|-----------------------------------------------------------------------------------------------------------------|------------------------|----------------|--------------|---------------------|---------------------|---------------------|------------------| +| |stud1 |10.160.179.31 |10.160.179.11 |193.32.63.171 |stud1.myoffice.ru |10.160.179.121 |10.160.179.61 |10.160.179.141 |10.160.179.161 |10.160.179.162 |10.160.179.201 | +| |stud2 |10.160.179.32 |10.160.179.12 |193.32.63.172 |stud2.myoffice.ru |10.160.179.122 |10.160.179.62 |10.160.179.142 |10.160.179.163 |10.160.179.164 |10.160.179.202 | +| |stud3 |10.160.179.33 |10.160.179.13 |193.32.63.173 |stud3.myoffice.ru |10.160.179.123 |10.160.179.63 |10.160.179.143 |10.160.179.165 |10.160.179.166 |10.160.179.203 | +| |stud4 |10.160.179.34 |10.160.179.14 |193.32.63.174 |stud4.myoffice.ru |10.160.179.124 |10.160.179.64 |10.160.179.144 |10.160.179.167 |10.160.179.168 |10.160.179.204 | +| |stud5 |10.160.179.35 |10.160.179.15 |193.32.63.175 |stud5.myoffice.ru |10.160.179.125 |10.160.179.65 |10.160.179.145 |10.160.179.169 |10.160.179.170 |10.160.179.205 | +| |stud6 |10.160.179.36 |10.160.179.16 |193.32.63.176 |stud6.myoffice.ru |10.160.179.126 |10.160.179.66 |10.160.179.146 |10.160.179.171 |10.160.179.172 |10.160.179.206 | +| |stud7 |10.160.179.37 |10.160.179.17 |193.32.63.177 |stud7.myoffice.ru |10.160.179.127 |10.160.179.67 |10.160.179.147 |10.160.179.173 |10.160.179.174 |10.160.179.207 | +| |stud8 |10.160.179.38 |10.160.179.18 |193.32.63.178 |stud8.myoffice.ru |10.160.179.128 |10.160.179.68 |10.160.179.148 |10.160.179.175 |10.160.179.176 |10.160.179.208 | +| |stud9 |10.160.179.39 |10.160.179.19 |193.32.63.179 |stud9.myoffice.ru |10.160.179.129 |10.160.179.69 |10.160.179.149 |10.160.179.177 |10.160.179.178 |10.160.179.209 | +| |stud10|10.160.179.40 |10.160.179.20 |193.32.63.180 |stud10.myoffice.ru |10.160.179.130 |10.160.179.70 |10.160.179.150 |10.160.179.179 |10.160.179.180 |10.160.179.210 | +| |stud11|10.160.179.41 |10.160.179.21 |193.32.63.181 |stud11.myoffice.ru |10.160.179.131 |10.160.179.71 |10.160.179.151 |10.160.179.181 |10.160.179.182 |10.160.179.211 | +| |stud12|10.160.179.42 |10.160.179.22 |193.32.63.182 |stud12.myoffice.ru |10.160.179.132 |10.160.179.72 |10.160.179.152 |10.160.179.183 |10.160.179.184 |10.160.179.212 | +| |stud13|10.160.179.43 |10.160.179.23 |193.32.63.183 |stud13.myoffice.ru |10.160.179.133 |10.160.179.73 |10.160.179.153 |10.160.179.185 |10.160.179.186 |10.160.179.213 | +| |stud14|10.160.179.44 |10.160.179.24 |193.32.63.184 |stud14.myoffice.ru |10.160.179.134 |10.160.179.74 |10.160.179.154 |10.160.179.187 |10.160.179.188 |10.160.179.214 | +|Тестовая машина|stud15|10.160.179.45 |10.160.179.25 |193.32.63.185 |stud15.myoffice.ru |10.160.179.135 |10.160.179.75 |10.160.179.155 |10.160.179.189 |10.160.179.190 |10.160.179.215 | + + +Proxmox координаты для подключения к виртуальным машинам +URL: https://193.32.63.170:8006 +Realm: Proxmox ... +Логин: studX +Пароль: **************** + +Виртуальные машины stud1 - stud12 по ssh +Host: 193.32.63.170 +Port: 22 +Логин: stud +Пароль: **************** +Команда ssh 193.32.63.17X -p 22 -l stud diff --git a/module1/01_bash/lection.md b/module1/01_bash/lection.md new file mode 100644 index 0000000..5b74454 --- /dev/null +++ b/module1/01_bash/lection.md @@ -0,0 +1,1798 @@ + + + + +всем привет + +эта лекция посвящена файловой системе + +linux + +мы рассмотрим команды модификации и команда чтения + +данных и свойств файловой системы + +файловая система + +это дерево + +узлами которого является файла + +каждому файлу соответствует структура ойноут + +TODO About file system and inodes https://blog.carlosgaldino.com/writing-a-file-system-from-scratch-in-rust.html. + +сейчас мы находимся + +терминале баш + +операционной системы ubuntu + +в настраиваемом префиксе + +до мигающего курсора выводится + +имя пользователя под которым мы зашли в + +операционной системы + +имя узла + +и путь к текущей директории + +чтобы вывести полный путь к текущей + +директории используется команда pwd + +принтер ким directory + +путь представляет из себя набор + +имен директорий разделенных символом прямо услыша + +есть два способа задания пути это + +абсолютный путь и относительный путь + +абсолютный путь ведет от корня и всегда начинается со слыша + +относительный путь ведет от текущей + +директории и может начинаться с трех возможных сокращений + +это . flash + +обозначающую текущую директорию две + +точки слышь + +обозначающие родительскую директорию + +и тильда слышь + +обозначающие домашнюю директорию + +пользователя которая интерпретирует + +это выражение + +также . слышь + +может не указываться + +и путь начинаться с имени + +дочерна территории + +создать пустой файл можно с помощью + +команды touch + +создать пустую директорию можно с + +помощью команды diff + +чтобы вывести список дочерних узлов + +используется команда ls + +мы видим созданные + +два файла + +это файл директория и файл в котором + +могут храниться данные + +для того чтобы изменить + +текущую директорию + +используется команда cd ченчик directory + +перейдем директорию тир а + +затем перейдем из нее обратно + +хорошим источником информации + +в среде unix является + +много + +69 +00:04:14,380 --> 00:04:17,430 +эта документация + +70 +00:04:19,620 --> 00:04:25,750 +размещена на сайте тел debate.org или + +71 +00:04:23,290 --> 00:04:27,780 +может быть установлена систему + +72 +00:04:25,750 --> 00:04:30,970 +администратором + +73 +00:04:27,780 --> 00:04:33,270 +для того чтобы просмотреть эту + +74 +00:04:30,970 --> 00:04:33,270 +документацию + +75 +00:04:33,570 --> 00:04:40,080 +из терминалы используются + +76 +00:04:37,080 --> 00:04:40,080 +утилитами + +77 +00:04:41,910 --> 00:04:50,790 +посмотрим + +78 +00:04:44,850 --> 00:04:50,790 +на страничку посвященную структуре ой но + +79 +00:04:54,210 --> 00:05:00,000 +здесь говорится о том что такое ноут и + +80 +00:04:57,100 --> 00:05:00,000 +перечисляется + +81 +00:05:00,510 --> 00:05:07,680 +какие + +82 +00:05:02,400 --> 00:05:07,680 +атрибуты хранятся в этой структуре а + +83 +00:05:12,210 --> 00:05:17,800 +файле известно + +84 +00:05:14,850 --> 00:05:18,870 +на каком физическом устройстве он + +85 +00:05:17,800 --> 00:05:23,730 +хранится + +86 +00:05:18,870 --> 00:05:26,400 +указывается мы идешь и майн райден у + +87 +00:05:23,730 --> 00:05:29,290 +каждого файла есть + +88 +00:05:26,400 --> 00:05:32,010 +уникальный идентификатор в пределах + +89 +00:05:29,290 --> 00:05:35,000 +файловой системы + +90 +00:05:32,010 --> 00:05:38,330 +файлы есть тип + +91 +00:05:35,000 --> 00:05:40,840 +режим количество ссылок на него и другие + +92 +00:05:38,330 --> 00:05:40,840 +атрибут + +93 +00:05:55,110 --> 00:06:00,710 +если вы работали раньше с операционной + +94 +00:05:57,900 --> 00:06:00,710 +системы windows + +95 +00:06:01,580 --> 00:06:08,690 +для вас может + +96 +00:06:04,670 --> 00:06:13,250 +быть непривычно увидеть путь + +97 +00:06:08,690 --> 00:06:13,250 +без указания диска + +98 +00:06:14,180 --> 00:06:21,600 +в linux файловой системы которые + +99 +00:06:17,880 --> 00:06:23,930 +находятся на разных дисках монтируется в + +100 +00:06:21,600 --> 00:06:27,020 +единую + +101 +00:06:23,930 --> 00:06:27,020 +файловую систему + +102 +00:06:33,340 --> 00:06:36,510 +корневой каталог + +103 +00:06:34,980 --> 00:06:38,590 +с + +104 +00:06:36,510 --> 00:06:40,680 +необходимыми для запуска операционной + +105 +00:06:38,590 --> 00:06:45,090 +системы + +106 +00:06:40,680 --> 00:06:45,090 +файлами хранится + +107 +00:06:46,139 --> 00:06:50,169 +на диске где установлена операционная + +108 +00:06:49,330 --> 00:06:52,410 +система + +109 +00:06:50,169 --> 00:06:55,389 +все остальные файловые системы + +110 +00:06:52,410 --> 00:06:59,729 +могут быть примонтирован и в любую + +111 +00:06:55,389 --> 00:07:03,990 +дочерней для корневого + +112 +00:06:59,729 --> 00:07:03,990 +каталога директорию + +113 +00:07:11,129 --> 00:07:17,809 +обрати внимание что написано + +114 +00:07:13,759 --> 00:07:20,269 +про яндекс файла у + +115 +00:07:17,809 --> 00:07:23,269 +каждого файла есть свой уникальный + +116 +00:07:20,269 --> 00:07:23,269 +идентификатор + +117 +00:07:23,989 --> 00:07:35,300 +в одной файловой системе + +118 +00:07:29,119 --> 00:07:38,509 +однако для совокупности файловых систем + +119 +00:07:35,300 --> 00:07:41,699 +единого дерева + +120 +00:07:38,509 --> 00:07:44,449 +свойство уникальность идентификатора не + +121 +00:07:41,699 --> 00:07:46,789 +соблюдается + +122 +00:07:44,449 --> 00:07:50,610 +то есть + +123 +00:07:46,789 --> 00:07:53,429 +на одном диске и на другом диске могут + +124 +00:07:50,610 --> 00:07:56,269 +лежать файлы с одним и тем же уникальный + +125 +00:07:53,429 --> 00:07:56,269 +идентификатор + +126 +00:08:00,240 --> 00:08:04,099 +файловой системе также может создавать + +127 +00:08:02,400 --> 00:08:08,660 +ссылки + +128 +00:08:04,099 --> 00:08:11,970 +это делается с помощью утилиты ln + +129 +00:08:08,660 --> 00:08:14,449 +которая в качестве аргументов принимает + +130 +00:08:11,970 --> 00:08:14,449 +два пути + +131 +00:08:14,870 --> 00:08:23,900 +первый аргумент это путь к целевому + +132 +00:08:19,620 --> 00:08:23,900 +файлу на которой мы ссылаемся + +133 +00:08:26,569 --> 00:08:33,199 +второй аргумент это путь + +134 +00:08:29,630 --> 00:08:33,199 +на ссылку + +135 +00:08:36,740 --> 00:08:42,580 +можно создавать два вида ссылок жесткие + +136 +00:08:40,580 --> 00:08:45,010 +ссылки и + +137 +00:08:42,580 --> 00:08:48,890 +символические ссылки + +138 +00:08:45,010 --> 00:08:52,060 +по умолчанию утилиты events выдает + +139 +00:08:48,890 --> 00:08:52,060 +жесткую ссылку + +140 +00:08:53,589 --> 00:08:59,540 +для того чтобы + +141 +00:08:56,080 --> 00:09:01,730 +создать символическую ссылку в качестве + +142 +00:08:59,540 --> 00:09:04,630 +дополнительного аргумента нужно передать + +143 +00:09:01,730 --> 00:09:04,630 +флаг с + +144 +00:09:08,740 --> 00:09:13,270 +вы видим список дочерних узлов + +145 +00:09:17,700 --> 00:09:23,550 +вместе с + +146 +00:09:20,670 --> 00:09:26,970 +идентификаторами назначенными + +147 +00:09:23,550 --> 00:09:26,970 +этим файлом + +148 +00:09:29,160 --> 00:09:36,110 +мы видим что создано 2 ссылки и + +149 +00:09:33,199 --> 00:09:39,990 +наверное вы обратили внимание что + +150 +00:09:36,110 --> 00:09:42,290 +у файла и в жесткой ссылки один и тот же + +151 +00:09:39,990 --> 00:09:42,290 +идентификатор + +152 +00:09:44,959 --> 00:09:52,459 +жесткая ссылка хранит в себе + +153 +00:09:48,110 --> 00:09:52,459 +именно этот за интеллект or + +154 +00:09:53,300 --> 00:09:56,389 +символическая ссылка + +155 +00:09:56,689 --> 00:10:02,569 +хранит в себе + +156 +00:09:58,610 --> 00:10:02,569 +полный путь до файла + +157 +00:10:07,160 --> 00:10:13,829 +так как свойство уникальности + +158 +00:10:10,879 --> 00:10:17,430 +идентификаторы не выполняется для + +159 +00:10:13,829 --> 00:10:18,889 +совокупности файловых систем то жесткие + +160 +00:10:17,430 --> 00:10:23,040 +ссылки должны + +161 +00:10:18,889 --> 00:10:27,470 +храниться в тех же файлов системах где + +162 +00:10:23,040 --> 00:10:27,470 +хранятся файлы на которые они ссылаются + +163 +00:10:29,420 --> 00:10:35,540 +символическая ссылка может ссылаться на + +164 +00:10:31,709 --> 00:10:35,540 +файл в другой файловой системе + +165 +00:10:42,550 --> 00:10:46,540 +посмотрим + +166 +00:10:44,960 --> 00:10:50,900 +также как + +167 +00:10:46,540 --> 00:10:53,380 +переместить или переименовать файл для + +168 +00:10:50,900 --> 00:10:55,960 +этого используется утилита + +169 +00:10:53,380 --> 00:11:00,400 +м.в. + +170 +00:10:55,960 --> 00:11:00,400 +переместим файл директорию der + +171 +00:11:12,450 --> 00:11:17,550 +действительно файл + +172 +00:11:14,550 --> 00:11:17,550 +переместился + +173 +00:11:23,160 --> 00:11:27,810 +на самом деле перемещение + +174 +00:11:25,589 --> 00:11:30,420 +переименовываем переименование можно + +175 +00:11:27,810 --> 00:11:32,839 +представить в виде транзакция состоящая + +176 +00:11:30,420 --> 00:11:38,779 +из двух действий + +177 +00:11:32,839 --> 00:11:41,629 +то создание новой жесткой ссылки и + +178 +00:11:38,779 --> 00:11:44,689 +удаление star + +179 +00:11:41,629 --> 00:11:48,230 +пока в системе + +180 +00:11:44,689 --> 00:11:52,339 +на файл ссылается хотя бы одна ссылка + +181 +00:11:48,230 --> 00:11:52,339 +этот файл не удаляется + +182 +00:11:57,050 --> 00:12:00,800 +удалить директорию + +183 +00:12:02,449 --> 00:12:07,699 +или файл можно с помощью командира + +184 +00:12:08,689 --> 00:12:12,740 +удалим жесткую ссылку + +185 +00:12:19,030 --> 00:12:25,380 +удалить директорию также можно с помощью + +186 +00:12:22,120 --> 00:12:25,380 +команда рмд + +187 +00:12:26,220 --> 00:12:33,600 +особенно заключается в том что + +188 +00:12:29,970 --> 00:12:35,950 +rm der не удаляет + +189 +00:12:33,600 --> 00:12:38,430 +директорию в которой есть дочерние узлы + +190 +00:12:35,950 --> 00:12:38,430 +а + +191 +00:12:38,970 --> 00:12:45,420 +р м при указании флага + +192 +00:12:43,290 --> 00:12:49,230 +or + +193 +00:12:45,420 --> 00:12:49,230 +сокращенно 3 курсов + +194 +00:12:53,130 --> 00:13:01,500 +сделает это без колебаний + +195 +00:12:56,760 --> 00:13:01,500 +что может привести к потере данных + +196 +00:13:09,080 --> 00:13:16,960 +поэтому можно подстраховаться и + +197 +00:13:13,250 --> 00:13:20,980 +использовать утилиту и рандир + +198 +00:13:16,960 --> 00:13:24,160 +даже посмотрим на утилиты 3 + +199 +00:13:20,980 --> 00:13:27,280 +она обычно не устанавливается + +200 +00:13:24,160 --> 00:13:27,280 +операционную систему + +201 +00:13:32,120 --> 00:13:37,690 +тогда ее нужно будет до установить + +202 +00:13:38,230 --> 00:13:44,380 +три позволяет + +203 +00:13:41,050 --> 00:13:48,670 +произвести рекурсивный обход по дереву + +204 +00:13:44,380 --> 00:13:48,670 +начинают указано узла + +205 +00:13:52,690 --> 00:13:57,220 +в данном случае ограничим глубину обхода + +206 +00:13:56,540 --> 00:14:00,010 +дерева + +207 +00:13:57,220 --> 00:14:02,590 +до единицы и выведем + +208 +00:14:00,010 --> 00:14:07,090 +список + +209 +00:14:02,590 --> 00:14:07,090 +дочерних узлов корневого каталога + +210 +00:14:12,819 --> 00:14:17,220 +по поводу директорий корневого каталога + +211 +00:14:15,789 --> 00:14:20,819 +также + +212 +00:14:17,220 --> 00:14:20,819 +есть страничка + +213 +00:14:20,939 --> 00:14:26,819 +мануала + +214 +00:14:22,949 --> 00:14:31,589 +которая называется хоть + +215 +00:14:26,819 --> 00:14:31,589 +с момента создания + +216 +00:14:31,949 --> 00:14:34,949 +unix + +217 +00:14:35,399 --> 00:14:40,959 +сложились соглашение по названию и по + +218 +00:14:38,470 --> 00:14:43,049 +назначению директорий в корневом + +219 +00:14:40,959 --> 00:14:43,049 +каталоге + +220 +00:14:45,389 --> 00:14:54,449 +в бинт и с бен как правило хранятся + +221 +00:14:51,509 --> 00:14:58,029 +исполняемые файлы + +222 +00:14:54,449 --> 00:15:01,439 +которые нужны для запуска или для + +223 +00:14:58,029 --> 00:15:04,139 +восстановления операционной системы + +224 +00:15:01,439 --> 00:15:07,319 +директории будут + +225 +00:15:04,139 --> 00:15:09,789 +храниться ядро и + +226 +00:15:07,319 --> 00:15:13,889 +статические файлы которые требуются для + +227 +00:15:09,789 --> 00:15:13,889 +запуска операционной системы + +228 +00:15:17,050 --> 00:15:21,600 +для системного администратора + +229 +00:15:19,440 --> 00:15:23,339 +представляет + +230 +00:15:21,600 --> 00:15:25,320 +интерес + +231 +00:15:23,339 --> 00:15:29,580 +особенные два + +232 +00:15:25,320 --> 00:15:32,610 +каталога гитисе и каталог voir + +233 +00:15:29,580 --> 00:15:32,610 +витязь и + +234 +00:15:33,000 --> 00:15:39,209 +хранится вся конфигурация операционной + +235 +00:15:36,339 --> 00:15:39,209 +системы linux + +236 +00:15:43,880 --> 00:15:48,310 +а в + +237 +00:15:45,040 --> 00:15:52,640 +каталоге war содержатся + +238 +00:15:48,310 --> 00:15:55,330 +дочерней каталог лог в которой сыпаться + +239 +00:15:52,640 --> 00:15:59,440 +все логе + +240 +00:15:55,330 --> 00:15:59,440 +от всех процессов и + +241 +00:16:01,900 --> 00:16:05,410 +любой разбор + +242 +00:16:10,320 --> 00:16:17,010 +происшествие начинается с чтение этого + +243 +00:16:14,620 --> 00:16:17,010 +каталога + +244 +00:16:34,670 --> 00:16:39,940 +каталог клип содержит в себе + +245 +00:16:36,640 --> 00:16:39,940 +динамические библиотеки + +246 +00:16:42,160 --> 00:16:50,260 +установленные в операционную систему + +247 +00:16:45,190 --> 00:16:50,260 +которых мы коснемся в 4 лекции + +248 +00:16:52,180 --> 00:16:56,200 +для рук пользователя + +249 +00:16:57,220 --> 00:17:03,440 +домашняя директория хранится в корневом + +250 +00:17:00,770 --> 00:17:04,810 +каталоге и называется root для всех + +251 +00:17:03,440 --> 00:17:07,760 +остальных пользователей + +252 +00:17:04,810 --> 00:17:10,390 +домашней директории находятся в + +253 +00:17:07,760 --> 00:17:13,280 +директории home + +254 +00:17:10,390 --> 00:17:16,480 +два каталога используются для + +255 +00:17:13,280 --> 00:17:16,480 +монтирования на + +256 +00:17:19,060 --> 00:17:22,210 +небольшое время + +257 +00:17:22,570 --> 00:17:27,400 +файловых систем например + +258 +00:17:28,540 --> 00:17:35,900 +хранящихся на flash накопителях или на + +259 +00:17:31,610 --> 00:17:37,750 +cd-дисках это дерек которые и мантии и + +260 +00:17:35,900 --> 00:17:41,020 +медиа + +261 +00:17:37,750 --> 00:17:42,580 +вы монти как правило + +262 +00:17:41,020 --> 00:17:46,480 +монтирование + +263 +00:17:42,580 --> 00:17:47,920 +файловых систем производится вручную а + +264 +00:17:46,480 --> 00:17:49,930 +в медиа + +265 +00:17:47,920 --> 00:17:52,930 +[музыка] + +266 +00:17:49,930 --> 00:17:52,930 +автоматически + +267 +00:17:53,020 --> 00:17:58,030 +фоновыми процессами если такие + +268 +00:17:55,370 --> 00:17:58,030 +установлен + +269 +00:17:58,060 --> 00:18:02,890 +вал 5 вы можете положить + +270 +00:18:03,640 --> 00:18:09,910 +программное обеспечение которое + +271 +00:18:06,520 --> 00:18:09,910 +скомбинировали вручную + +272 +00:18:13,799 --> 00:18:19,350 +tmp это директория в которую можно + +273 +00:18:16,289 --> 00:18:24,320 +поместить временные файлы которые не + +274 +00:18:19,350 --> 00:18:24,320 +жалко при отключении питания узла + +275 +00:18:26,710 --> 00:18:30,120 +не жалко потерять их + +276 +00:18:39,910 --> 00:18:43,660 +директория резерв + +277 +00:18:43,960 --> 00:18:46,960 +имеет + +278 +00:18:47,980 --> 00:18:55,480 +аналогичную структуру + +279 +00:18:51,070 --> 00:18:59,020 +что и корневой каталог а + +280 +00:18:55,480 --> 00:18:59,020 +если вы посмотрите + +281 +00:18:59,890 --> 00:19:09,070 +в документацию об иерархической файловой + +282 +00:19:04,640 --> 00:19:09,070 +системе вы видите что + +283 +00:19:09,520 --> 00:19:16,270 +в эту директорию монтируется + +284 +00:19:13,210 --> 00:19:16,270 +файловая система + +285 +00:19:16,750 --> 00:19:23,860 +которая + +286 +00:19:19,750 --> 00:19:26,890 +содержит исполняемые файлы и + +287 +00:19:23,860 --> 00:19:26,890 +динамические библиотеки + +288 +00:19:28,330 --> 00:19:32,830 +общие для всех узлов и + +289 +00:19:34,150 --> 00:19:39,790 +монтирования производятся только для + +290 +00:19:37,670 --> 00:19:39,790 +чтения + +291 +00:19:42,240 --> 00:19:48,380 +видимо это пошло со времен + +292 +00:19:46,190 --> 00:19:50,780 +существования + +293 +00:19:48,380 --> 00:19:53,600 +кластеров + +294 +00:19:50,780 --> 00:19:58,370 +для персональных компьютеров + +295 +00:19:53,600 --> 00:19:58,370 +это соглашение не соблюдается + +296 +00:19:58,580 --> 00:20:05,660 +выше можно увидеть что часть каталогов + +297 +00:20:02,300 --> 00:20:11,040 +например bim lip + +298 +00:20:05,660 --> 00:20:15,860 +с бен на самом деле является ссылками на + +299 +00:20:11,040 --> 00:20:15,860 +каталоге которые содержатся weather + +300 +00:20:24,820 --> 00:20:27,659 +осталось обсудить + +301 +00:20:28,470 --> 00:20:37,740 +несколько интересных каталогов это + +302 +00:20:32,220 --> 00:20:37,740 +каталог где впрок isis + +303 +00:20:40,470 --> 00:20:43,919 +посмотрим что находится + +304 +00:20:43,980 --> 00:20:47,610 +каталоге rock + +305 +00:20:50,610 --> 00:20:55,559 +здесь хранятся + +306 +00:20:54,000 --> 00:20:59,700 +ведутся + +307 +00:20:55,559 --> 00:21:03,120 +счетчики операционной системы + +308 +00:20:59,700 --> 00:21:06,309 +например счетчик + +309 +00:21:03,120 --> 00:21:09,090 +времени прошедшего с момента последней + +310 +00:21:06,309 --> 00:21:12,269 +загрузки узлам + +311 +00:21:09,090 --> 00:21:15,909 +который называется аптайм + +312 +00:21:12,269 --> 00:21:17,399 +чтобы вывести содержимое файла можно + +313 +00:21:15,909 --> 00:21:20,789 +использовать + +314 +00:21:17,399 --> 00:21:20,789 +команду kit + +315 +00:21:33,820 --> 00:21:38,220 +мы видим что в этом файле + +316 +00:21:36,210 --> 00:21:39,650 +страницу + +317 +00:21:38,220 --> 00:21:43,520 +два значения + +318 +00:21:39,650 --> 00:21:43,520 +которые увеличиваются + +319 +00:21:43,760 --> 00:21:49,850 +каждый раз при в избе при чтении + +320 +00:21:56,659 --> 00:22:02,299 +а также в этом каталоге + +321 +00:21:59,229 --> 00:22:04,090 +для каждого процесса запущенного + +322 +00:22:02,299 --> 00:22:07,720 +операция системе + +323 +00:22:04,090 --> 00:22:07,720 +можно получить + +324 +00:22:10,529 --> 00:22:13,529 +информация + +325 +00:22:14,930 --> 00:22:18,520 +осмотру какое именно + +326 +00:22:21,740 --> 00:22:25,610 +именно каталогов + +327 +00:22:25,940 --> 00:22:31,990 +номерные + +328 +00:22:27,129 --> 00:22:31,990 +соответствует идентификатором процессов + +329 +00:22:32,080 --> 00:22:36,309 +перейдем в потолок + +330 +00:22:36,519 --> 00:22:39,850 +9-2 2 + +331 +00:22:42,429 --> 00:22:50,440 +перейдем в каталог процесса + +332 +00:22:45,519 --> 00:22:50,440 +с идентификатором 94 22 + +333 +00:22:52,230 --> 00:22:57,870 +из достаточно много информации которую + +334 +00:22:55,059 --> 00:22:57,870 +можно + +335 +00:22:58,050 --> 00:23:06,150 +посмотреть например можно + +336 +00:23:02,220 --> 00:23:06,150 +посмотреть какие ограничения + +337 +00:23:07,320 --> 00:23:14,770 +были заданы при запуске это процесс + +338 +00:23:12,370 --> 00:23:18,420 +мы видим что процессор на время не + +339 +00:23:14,770 --> 00:23:22,320 +ограничено размер файлов и + +340 +00:23:18,420 --> 00:23:22,320 +не ограничим количество + +341 +00:23:22,830 --> 00:23:28,290 +открытых файлов + +342 +00:23:25,290 --> 00:23:28,290 +ограниченном + +343 +00:23:29,799 --> 00:23:33,980 +сопли мид + +344 +00:23:32,010 --> 00:23:36,710 +забыл ученье + +345 +00:23:33,980 --> 00:23:40,070 +1024 от лимит + +346 +00:23:36,710 --> 00:23:43,460 +в миллион + +347 +00:23:40,070 --> 00:23:43,460 +с чем-то + +348 +00:23:43,670 --> 00:23:49,080 +софт лимит это те ограничение который + +349 +00:23:46,920 --> 00:23:53,390 +применяется в данный момент харди лимит + +350 +00:23:49,080 --> 00:23:57,410 +это максимальное значение для сохли + +351 +00:23:53,390 --> 00:23:57,410 +то есть хак дле мид это + +352 +00:23:57,860 --> 00:24:03,240 +инструмент скорее администратора + +353 +00:24:00,740 --> 00:24:07,370 +ассортимент это инструмент для + +354 +00:24:03,240 --> 00:24:09,920 +пользователя видеть администратора + +355 +00:24:07,370 --> 00:24:13,230 +которые хотят + +356 +00:24:09,920 --> 00:24:18,110 +поставить еще более жесткие ограничения + +357 +00:24:13,230 --> 00:24:18,110 +для запуска ему о процессы + +358 +00:24:28,220 --> 00:24:34,370 +директория cis на самом деле это + +359 +00:24:32,120 --> 00:24:36,780 +директория которых + +360 +00:24:34,370 --> 00:24:39,770 +директория сиз позволяет получить ту же + +361 +00:24:36,780 --> 00:24:43,190 +информацию что и директория прок но + +362 +00:24:39,770 --> 00:24:46,190 +она структурирована по + +363 +00:24:43,190 --> 00:24:46,190 +другому + +364 +00:24:49,170 --> 00:24:55,040 +осталось посмотреть на сидевшим + +365 +00:24:52,140 --> 00:24:55,040 +директории дев + +366 +00:24:56,750 --> 00:25:02,140 +в этой директории хранятся особые + +367 +00:24:59,200 --> 00:25:04,900 +специальные файлы + +368 +00:25:02,140 --> 00:25:07,990 +так файлом + +369 +00:25:04,900 --> 00:25:12,130 +может быть не только + +370 +00:25:07,990 --> 00:25:16,270 +файл с данными или директории но и + +371 +00:25:12,130 --> 00:25:16,270 +специальные файлы которые + +372 +00:25:16,420 --> 00:25:21,370 +представляют + +373 +00:25:18,010 --> 00:25:23,630 +из себя процессы + +374 +00:25:21,370 --> 00:25:24,940 +через который можно общаться с + +375 +00:25:23,630 --> 00:25:27,500 +процессами + +376 +00:25:24,940 --> 00:25:32,230 +или физическими устройствами + +377 +00:25:27,500 --> 00:25:32,230 +подключенными к материнской плате + +378 +00:25:39,690 --> 00:25:43,220 +часто используют + +379 +00:25:45,649 --> 00:25:53,210 +специальные устройства нам + +380 +00:25:49,190 --> 00:25:56,210 +веру юрин дам и + +381 +00:25:53,210 --> 00:25:56,210 +рэндом + +382 +00:26:00,780 --> 00:26:06,770 +здесь также могут находиться устройства + +383 +00:26:04,050 --> 00:26:06,770 +например + +384 +00:26:09,030 --> 00:26:11,420 +это + +385 +00:26:11,570 --> 00:26:17,220 +графический например если к вашей + +386 +00:26:15,060 --> 00:26:18,050 +материнской плате подключены графические + +387 +00:26:17,220 --> 00:26:21,800 +карты + +388 +00:26:18,050 --> 00:26:21,800 +графически устройства + +389 +00:26:25,400 --> 00:26:31,800 +будут также представлены + +390 +00:26:29,150 --> 00:26:34,400 +специальными файлами в этой директории + +391 +00:26:31,800 --> 00:26:34,400 +дев + +392 +00:26:43,090 --> 00:26:49,149 +мы также не коснулись того как искать + +393 +00:26:49,899 --> 00:26:52,899 +файл + +394 +00:26:53,840 --> 00:26:59,740 +файловой системе это делается с помощью + +395 +00:26:56,630 --> 00:26:59,740 +утилиты file + +396 +00:27:01,000 --> 00:27:09,980 +в качестве первого аргумента передается + +397 +00:27:05,919 --> 00:27:10,929 +путь начиная с которым будет + +398 +00:27:09,980 --> 00:27:13,120 +производиться + +399 +00:27:10,929 --> 00:27:14,890 +рекурсивный поиск + +400 +00:27:13,120 --> 00:27:17,890 +укажем + +401 +00:27:14,890 --> 00:27:17,890 +корень + +402 +00:27:18,730 --> 00:27:25,080 +то есть будем искать по всему дереву + +403 +00:27:21,850 --> 00:27:25,080 +файловой системы а + +404 +00:27:26,549 --> 00:27:29,730 +вторым аргументом + +405 +00:27:30,270 --> 00:27:37,260 +мы покажем + +406 +00:27:32,880 --> 00:27:37,260 +вторым и третьим мы укажем + +407 +00:27:38,160 --> 00:27:41,880 +иметь директории + +408 +00:27:46,720 --> 00:27:54,850 +мы видим достаточно большую выдачу в + +409 +00:27:50,810 --> 00:27:54,850 +основном состоящие из ошибок у + +410 +00:27:55,090 --> 00:28:01,490 +каждого процесса есть доступ к + +411 +00:27:58,370 --> 00:28:03,850 +стандартному потоку ввода стандартный + +412 +00:28:01,490 --> 00:28:06,850 +поток вывода и стандартный поток вывода + +413 +00:28:03,850 --> 00:28:06,850 +ошибок + +414 +00:28:11,360 --> 00:28:15,590 +мы можем перенаправить + +415 +00:28:16,010 --> 00:28:21,710 +потоки + +416 +00:28:18,110 --> 00:28:21,710 +в файл + +417 +00:28:22,010 --> 00:28:25,010 +например + +418 +00:28:25,220 --> 00:28:29,450 +чтобы избавиться от + +419 +00:28:30,049 --> 00:28:37,760 +ошибок который вводится команде фант + +420 +00:28:34,850 --> 00:28:39,650 +можно перенаправить + +421 +00:28:37,760 --> 00:28:42,929 +поток + +422 +00:28:39,650 --> 00:28:45,110 +ошибок в специальное устройство dev + +423 +00:28:42,929 --> 00:28:45,110 +tools + +424 +00:28:52,320 --> 00:29:02,820 +стандартный поток ввода имеет + +425 +00:28:56,710 --> 00:29:02,820 +идентификатор 0 вывода 1а + +426 +00:29:03,160 --> 00:29:08,160 +стандартный поток вывода ошибок имеет + +427 +00:29:06,100 --> 00:29:11,280 +идентификатор дома + +428 +00:29:08,160 --> 00:29:13,650 +мы перенаправляем его + +429 +00:29:11,280 --> 00:29:15,870 +символом + +430 +00:29:13,650 --> 00:29:19,560 +угловой скобкой + +431 +00:29:15,870 --> 00:29:23,220 +в файл дев нам и + +432 +00:29:19,560 --> 00:29:25,950 +таким образом остается + +433 +00:29:23,220 --> 00:29:30,750 +единственная строка + +434 +00:29:25,950 --> 00:29:30,750 +это наш найденный файл + +435 +00:29:30,820 --> 00:29:36,040 +директория + +436 +00:29:33,040 --> 00:29:36,040 +warlock + +437 +00:29:45,200 --> 00:29:48,739 +на этом лекция + +438 +00:29:49,399 --> 00:29:52,399 +совершается + +439 +00:29:55,799 --> 00:29:59,190 +хотя можно + +440 +00:30:00,160 --> 00:30:06,660 +а еще рассмотреть командует адам + +441 +00:30:03,360 --> 00:30:10,840 +сокращенно dd + +442 +00:30:06,660 --> 00:30:12,510 +потому что мы коснулись рэндом верандами + +443 +00:30:10,840 --> 00:30:16,080 +озеру + +444 +00:30:12,510 --> 00:30:20,190 +прочитав из этих специальных файлов + +445 +00:30:16,080 --> 00:30:24,370 +определенное количество байт мы можем + +446 +00:30:20,190 --> 00:30:27,240 +проинициализировать таким образом файл + +447 +00:30:24,370 --> 00:30:30,990 +или или какой-то кусок памяти + +448 +00:30:27,240 --> 00:30:32,790 +в качестве аргумента для команда детей + +449 +00:30:30,990 --> 00:30:38,110 +передается + +450 +00:30:32,790 --> 00:30:40,350 +поток воды мы будем считывать из юрин + +451 +00:30:38,110 --> 00:30:40,350 +дам + +452 +00:30:41,460 --> 00:30:44,730 +поток вывода + +453 +00:30:49,799 --> 00:30:55,820 +или файл здесь мы укажем путь + +454 +00:30:55,970 --> 00:31:00,830 +сразу который хотим правители zeroes + +455 +00:31:03,889 --> 00:31:07,850 +затем + +456 +00:31:05,960 --> 00:31:10,220 +размер блока + +457 +00:31:07,850 --> 00:31:14,239 +по которым мы считываем + +458 +00:31:10,220 --> 00:31:14,239 +из этого устройства + +459 +00:31:16,399 --> 00:31:25,139 +будем считывать по 256 байт и + +460 +00:31:21,409 --> 00:31:27,499 +укажем количество блоков которые мы + +461 +00:31:25,139 --> 00:31:27,499 +хотели считать + +462 +00:31:30,799 --> 00:31:35,480 +велась это на 256 байт + +463 +00:31:38,419 --> 00:31:42,649 +посмотрим на содержимое этого файла + +464 +00:31:46,129 --> 00:31:54,379 +каким-то случайным значением + +465 +00:31:49,730 --> 00:31:54,379 +соответствуют символ каким-то нет + +466 +00:31:55,700 --> 00:31:59,090 +это выдача + +467 +00:31:59,360 --> 00:32:07,440 +будет зависеть от той кодировке которая + +468 +00:32:04,679 --> 00:32:08,510 +сейчас установлена в системе в данном + +469 +00:32:07,440 --> 00:32:11,899 +случае + +470 +00:32:08,510 --> 00:32:11,899 +думая эта кодировка + +471 +00:32:12,019 --> 00:32:15,019 +utf-8 + +472 +00:32:16,220 --> 00:32:23,059 +теперь точно все следующий лекция + +473 +00:32:20,269 --> 00:32:25,789 +будет посвящена + +474 +00:32:23,059 --> 00:32:29,990 +атрибутом файлов + +475 +00:32:25,789 --> 00:32:29,990 +работу владельца и + +476 +00:32:30,769 --> 00:32:36,620 +тому как на основе этих атрибутов + +477 +00:32:33,919 --> 00:32:39,830 +построена базовая + +478 +00:32:36,620 --> 00:32:43,309 +система безопасности + +479 +00:32:39,830 --> 00:32:43,309 +файловой системе + +480 +00:32:52,720 --> 00:32:58,900 +атрибуты можно вывести двумя способами + +481 +00:32:56,620 --> 00:33:02,559 +это + +482 +00:32:58,900 --> 00:33:05,679 +указанием аргумента и + +483 +00:33:02,559 --> 00:33:10,630 +для утилит л.с. + +484 +00:33:05,679 --> 00:33:10,630 +или для конкретного файла + +485 +00:33:12,640 --> 00:33:17,980 +получением атрибутов командой стад + +486 +00:33:20,770 --> 00:33:26,890 +всем спасибо + +487 +00:33:23,320 --> 00:33:26,890 +для следующей лекции + diff --git a/module1/01_bash/tasks.md b/module1/01_bash/tasks.md index 59f6a9f..7998800 100644 --- a/module1/01_bash/tasks.md +++ b/module1/01_bash/tasks.md @@ -133,4 +133,7 @@ done Напишите команду, которая рекурсивно находит все HTML-файлы в папке и упаковывает их в `tar.gz` архив. Используйте `find` и `xargs`. Ваша команда должна работать, даже если в файлах есть пробелы (подсказка: используйте `null` разделитель). ## 20 -(*) Напишите команду или сценарий для рекурсивного поиска самого последнего измененного файла в каталоге. В общем, можете ли вы перечислить все файлы по давности? \ No newline at end of file +(*) Напишите команду или сценарий для рекурсивного поиска самого последнего измененного файла в каталоге. В общем, можете ли вы перечислить все файлы по давности? + + +TODO install command diff --git a/module1/03_networking/lection.md b/module1/03_networking/lection.md index a68d8df..e717f5c 100644 --- a/module1/03_networking/lection.md +++ b/module1/03_networking/lection.md @@ -551,4 +551,5 @@ DHCP состоит из двух компонентов: протокола д Источники: - Michael Lucas. Networking for System Administrator - https://www.youtube.com/playlist?list=PLowKtXNTBypH19whXTVoG3oKSuOcw_XeW -- https://www.brendangregg.com/linuxperf.html \ No newline at end of file +- https://www.brendangregg.com/linuxperf.html +- https://habr.com/ru/articles/307252/ \ No newline at end of file diff --git a/module1/05_hash_ciphers_ssh_certs/tasks.md b/module1/05_hash_ciphers_ssh_certs/tasks.md index cc19d9b..422b062 100644 --- a/module1/05_hash_ciphers_ssh_certs/tasks.md +++ b/module1/05_hash_ciphers_ssh_certs/tasks.md @@ -94,4 +94,6 @@ verify(данные, подпись: массив<байт>, открытый к Релевантные ссылки: - https://missing.csail.mit.edu/2020/security/ -- https://letsencrypt.org/how-it-works/ \ No newline at end of file +- https://letsencrypt.org/how-it-works/ + +TODO https://www.golinuxcloud.com/generate-ssh-key-linux/ \ No newline at end of file diff --git a/module1/11_cron_at/tasks.md b/module1/11_cron_at/tasks.md index 985c994..00c47a6 100644 --- a/module1/11_cron_at/tasks.md +++ b/module1/11_cron_at/tasks.md @@ -3,10 +3,10 @@ Для проверки расписания вы можете использовать сайт https://crontab.guru/, https://cronheatmap.com и аналоги. ### 0. -Проверьте наличие команд cron и at в системе. Установите их в случае отсутствия. +Проверьте наличие команд `cron` и `at` в системе. Установите их в случае отсутствия. ### 1. -Выведите документацию crontab и cron. +Выведите документацию `crontab` и `cron`. ### 2. Создайте cron расписание для выполнения скрипта или к: @@ -38,16 +38,16 @@ Создайте задание в котором отчёты cron будут отправляться вам на внешний почтовый ящик. ### 4. -Установите пользовательский сrontab. +Установите пользовательский `сrontab`. ### 5. -Настройте выполнение исполняемого файла script.sh из `/usr/sbin/` каждую среду, модифицировав `PATH` в cron задании. +Настройте выполнение исполняемого файла `script.sh` из `/usr/sbin/` каждую среду, модифицировав `PATH` в cron задании. ### 6. -Пользуясь полномочиями суперпользователя, запретите пользователю mike выполнять команду at. +Пользуясь полномочиями суперпользователя, запретите пользователю `mike` выполнять команду `at`. ### 7. -Запланируйте командой at: +Запланируйте командой `at`: 1. выполнение скрипта сегодня в 9 часов, 2. перезагрузку через 2 часа, 3. выполнение команды через 100 лет. @@ -67,6 +67,10 @@ - /etc/at.deny Релевантные команды: - - cron - - at - - crontab \ No newline at end of file + - `cron` + - `at` + - `crontab` + + +TODO добавить упражнения для systemd .timer +добавить timedate/ntp? (установка времени вручную и по ntp, cron, at, systemd timer) \ No newline at end of file diff --git a/module1/12_troubleshooting/lection.md b/module1/12_troubleshooting/lection.md index 0961995..b12864e 100644 --- a/module1/12_troubleshooting/lection.md +++ b/module1/12_troubleshooting/lection.md @@ -9,9 +9,13 @@ ## Теория Формально мы можем рассматривать процесс устранения неполадок как применение гипотетико-дедуктивного метода: учитывая набор наблюдений за системой и теоретическую основу для понимания поведения системы, мы итеративно выдвигаем гипотезы о потенциальных причинах сбоя и пытаемся проверить эти гипотезы. + В идеализированной модели, мы бы начали с отчета о проблеме, сообщающего нам, что с системой что-то не так. Затем мы можем просмотреть данные телеметрии и журналы системы, чтобы понять ее текущее состояние. Эта информация в сочетании с нашими знаниями о том, как устроена система, как она должна работать, и о режимах ее сбоев, позволяет нам выявить некоторые возможные причины. + Затем мы можем проверить наши гипотезы одним из двух способов. Мы можем сравнить наблюдаемое состояние системы с нашими теориями, чтобы найти подтверждающие или опровергающие доказательства. Или, в некоторых случаях, мы можем активно «лечить» систему, то есть изменять систему контролируемым образом, и наблюдать за результатами. Этот второй подход уточняет наше понимание состояния системы и возможных причин сообщаемых проблем. Используя любую из этих стратегий, мы неоднократно тестируем до тех пор, пока не будет определена основная причина, после чего мы можем предпринять корректирующие действия, чтобы предотвратить повторение, и написать postmortem. Конечно, для устранения непосредственной причины (причин) не всегда нужно ждать первопричины или postmortem заключения. +Пример postmortem https://sre.google/sre-book/example-postmortem/. + ## Практика Практический совет - в случае проблемы ищите руководства по устранению неполадок (имя технологии troubleshooting guide в google) для вашего программного обеспечения. @@ -39,28 +43,31 @@ #### Поиск синтаксических ошибок или предупреждений в конфигурации -С помощью простой команды вы можете проверить состояние файла конфигурации Nginx: $ sudo systemctl config nginx В выводе будет показано, правильный ли файл конфигурации, или, если это не так, он покажет файл и строку, в которой возникла проблема. +С помощью простой команды вы можете проверить состояние файла конфигурации Nginx: +``` +$ sudo systemctl config nginx +``` +В выводе будет показано, правильный ли файл конфигурации, или, если это не так, он покажет файл и строку, в которой возникла проблема. + ``` $ sudo systemctl config nginx nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful ``` -Зайдите в файл /etc/nginx/nginx.conf и переместите директиву worker_connections внутрь блока http +Зайдите в файл `/etc/nginx/nginx.conf` и переместите директиву `worker_connections` внутрь блока `http` ``` $ sudo systemctl config nginx "worker_connections" directive is not allowed here in /etc/nginx/nginx.conf:12 nginx: configuration file /etc/nginx/nginx.conf test failed ``` -Если в вашей системе nginx не сконфигурирован как сервис systemd, вы можете использовать параметр -t, который также проверяет файл конфигурации на правильность синтаксиса, а затем пытается открыть файлы, указанные в конфигурации. +Если в вашей системе nginx не сконфигурирован как сервис `systemd`, вы можете использовать параметр `-t`, который также проверяет файл конфигурации на правильность синтаксиса, а затем пытается открыть файлы, указанные в конфигурации. ``` $ sudo nginx -t ``` -Убедитесь, что Nginx работает - -Проверить статус службы Nginx, вы можете использовать следующую команду: +Убедитесь, что Nginx работает. Проверить статус службы Nginx, вы можете использовать следующую команду: ``` $ sudo systemctl status nginx ``` @@ -70,14 +77,14 @@ $ sudo systemctl status nginx $ sudo /etc/init.d/nginx status ``` -Или найти nginx среди процессов: +Или найти `nginx` среди процессов: ``` ps uax | grep nginx ``` Убедитесь, что порты открыты и служба их слушает -Убедитесь, что у вас открыты необходимые порты, и чтобы убедиться, что служба Nginx прослушивает их, вы можете использовать команду lsof, в идеале с портами по умолчанию 80 и 443. +Убедитесь, что у вас открыты необходимые порты, и чтобы убедиться, что служба Nginx прослушивает их, вы можете использовать команду `lsof`, в идеале с портами по умолчанию `80` и `443`. ``` $ sudo lsof -i :80 -s TCP:LISTEN nginx 1305 nginx 6u IPv4 1613873 0t0 TCP *:http (LISTEN) @@ -88,7 +95,7 @@ nginx 1306 nginx 7u IPv6 1613874 0t0 TCP *:http (LISTEN) Проверить, обрабатывает ли Nginx запросы -Если Nginx действительно прослушивает соответствующие порты, следующим шагом будет проверка обработки запросов, что можно сделать с помощью инструмента curl с использованием IP-адреса, URL-адреса или локального хоста, если ваша установка прослушивает локальный хост: +Если Nginx действительно прослушивает соответствующие порты, следующим шагом будет проверка обработки запросов, что можно сделать с помощью инструмента `curl` с использованием IP-адреса, URL-адреса или локального хоста, если ваша установка прослушивает локальный хост: ``` $ curl -i http://127.0.0.1/nginx_status HTTP/1.1 200 OK @@ -106,7 +113,10 @@ Reading: 0 Writing: 1 Waiting: 0 #### Проверьте журналы -Проверьте последние журналы службы Nginx. $ sudo tail -f /var/log/nginx/access.log /var/log/nginx/error.log +Проверьте последние журналы службы Nginx. +``` +$ sudo tail -f /var/log/nginx/access.log /var/log/nginx/error.log +``` #### Проверить разрешения @@ -136,28 +146,28 @@ $ sudo systemctl restart nginx #### Включите режим отладки -В конфигурационном файле (обычно /etc/nginx/nginx.conf) измените уровень логирования директивой error_log: +В конфигурационном файле (обычно `/etc/nginx/nginx.conf`) измените уровень логирования директивой `error_log`: ``` server { -# stuff -error_log /var/logs/nginx/error.log debug; -# stuff + # stuff + error_log /var/logs/nginx/error.log debug; + # stuff } ``` Вы можете включить правило перезаписи журнала, чтобы увидеть результаты обработки в журнале ошибок: ``` server { -# stuff -error_log /var/logs/nginx/error.log notice; -rewrite_log on; -# stuff + # stuff + error_log /var/logs/nginx/error.log notice; + rewrite_log on; + # stuff } ``` #### Проверьте разрешение имён DNS -Правила в /etc/hosts имеют приоритет над разрешениями DNS. Вы можете проверить записи DNS с помощью: +Правила в `/etc/hosts` имеют приоритет над разрешениями DNS. Вы можете проверить записи DNS с помощью: ``` $ host -t Веб-сайт.com ``` diff --git a/module1/12_troubleshooting/tasks.md b/module1/12_troubleshooting/tasks.md index 430ae26..b10e721 100644 --- a/module1/12_troubleshooting/tasks.md +++ b/module1/12_troubleshooting/tasks.md @@ -15,4 +15,4 @@ ssh-copy-id stud@192.168.0.106 После логина стрелки не работают и выводят странные символы. Исправьте проблему. #### studX-troublesome-8 -Залогиньтесь сначала в `stud` потом в `root`. Посмотрите логи командой `journalctl -o short-iso`. В чём заключается проблема настройки машины? Исправьте её. \ No newline at end of file +Залогиньтесь сначала в `stud` потом в `root`. Попробуйте обновить `apt` базу данных командой `apt update`. Посмотрите логи командой `journalctl -o short-iso`. В чём заключается проблема настройки машины? Исправьте её. \ No newline at end of file diff --git a/module1/for_tutor.md b/module1/for_tutor.md index 563293b..3412c66 100644 --- a/module1/for_tutor.md +++ b/module1/for_tutor.md @@ -31,7 +31,7 @@ Создайте vlan с доступом в интернет. Например, `bond0.499` и мост `vmbr499` с параметрами: - Bridge ports: `bond0.499`, - VLAN aware: `false`, -- IPv4/CIDR: `10.160.179.254/24`, +- IPv4/CIDR: `10.160.179.254/24`, - Gateway (IPv4): `10.160.179.1`. До начала занятий создайте N виртуальных машин со следующими характеристиками: @@ -80,6 +80,7 @@ apt remove ifupdown Создайте `N` виртуальных машин `studX-net1` и `N` виртуальных машин `studX-net2` для `vmbrX`. Удалите пакет `ifupdown`. ## 4. Подготовка виртуальной машины к занятиям `12`. +# TODO АВТОМАТИЗИРОВАТЬ Данные виртуальные @@ -135,8 +136,8 @@ networkctl reload # task 5 # ping gateway ping 192.168.0.1 -c 1 2> /dev/null 1> /dev/null -gateway_mac=$(arp -n | grep 192.168.0.1 | awk '{ print $3 }') -ip link set address "$(gateway_mac)" dev ens18 +gateway_mac=$(arp -n | egrep '^192.168.0.1\s' | awk '{ print $3 }') +ip link set address "${gateway_mac}" dev ens18 ``` Активируйте следующий сервис: diff --git a/module2/00_bootloader/tasks.md b/module2/00_bootloader/tasks.md index 2560bc6..d67732a 100644 --- a/module2/00_bootloader/tasks.md +++ b/module2/00_bootloader/tasks.md @@ -123,4 +123,7 @@ PXE — это протокол, используемый для загрузк 1. Evi Nemeth, Garth Snyder, Trent R. Hein, Ben Whaley, Dan Macking. Unix Handbook. 2 Chapter. (117 page ebook). 2. Raphael Hertzog, Roland Mas. The Debian Administrators's Handbook. 9 Chapter (233 page ebook). -3. Michael W. Lucas. Absolute FreeBSD. 4 chapter (103 page ebook) \ No newline at end of file +3. Michael W. Lucas. Absolute FreeBSD. 4 chapter (103 page ebook) + + +TODO stress distinction of primary bootloader and secondary bootloader (comments for tasks, or separate tasks) \ No newline at end of file diff --git a/module2/01_partitions_raid_lvm_fs/lection.md b/module2/01_partitions_raid_lvm_fs/lection.md new file mode 100644 index 0000000..c0aec90 --- /dev/null +++ b/module2/01_partitions_raid_lvm_fs/lection.md @@ -0,0 +1,32 @@ +# Репликация и бэкапы + +Репликация это процесс в пространстве, backup это процесс во времени. + +Репликация спасает от выхода из строя физического элемента хранения. Например, выход из строя диска/сервера/стойки/датацентра. RAID массивы на основе физических контроллеров и `mdadm` обеспечивают репликацию, которая спасает от выхода из строя диска на узле. + +Backup спасает от выхода из строя элемента данных. Например, 09.12.2023 было выложено в ветку автоматических обновлений пакет обновления ядра, который приводил к повреждению данных при записи в Ext4 https://www.debian.org/News/2023/2023120902. При работе репликации в данном случае будут реплицированы повреждённые данные. Бэкапам также требуется репликация. Самая надежная, но наименее гибкая - репликация на разные несколько типов носителей: диски, флешки, оптические диски, ленты. + +**Таблица 0. Минимально необходимая схема резервирования данных data(t,n)** +|| Устройство хранения n=1 | Устройство хранения n=2 | +|--|-|-| +|вчерашние данные t=0 | data(0,0) | data(0,1) | +|текущие данные t=1 | data(1,0) | data(1,1) | + + + + +### Таблица 1. Типы RAID массивов +|Тип| Описание| Количество дисков | Выдерживает потерю | +|---|---------|-----------| ------ | +| RAID0 | Дисковый массив из двух или более жёстких дисков без резервирования (striping — «чередование»). | от 2 | 0 дисков | +| RAID1 | Массив из двух дисков являющихся полными копиями друг друга (mirroring — «зеркалирование»). | от 2 | N-1 дисков | +| RAID2 | Данные распределяются по дискам, предназначенным для хранения информации, так же, как и в RAID 0, но требуются выделенные диски в массиве для хранения кодов Хэмминга для коррекции ошибок. | от 3 | 1 диска | +| RAID3 | В массиве RAID 3 из N дисков данные разбиваются на куски размером меньше сектора и распределяются по N-1 дискам. Ещё один диск используется для хранения блоков чётности. Коррекция ошибок проще, чем в RAID 2, коды коррекции занимают 1 диск, вместо log2(N) дисков. | от 4 | 1 диска | +| RAID4 | RAID 4 похож на RAID 3, но отличается от него тем, что данные разбиваются на блоки, а не на байты. Отчасти это решает проблему низкой скорости чтения данных небольшого объёма. | от 4 | 1 диска | +| RAID5 | Основным недостатком уровней RAID от 2-го до 4-го является невозможность производить параллельные операции записи, так как для хранения информации о чётности используется отдельный контрольный диск. RAID 5 не имеет этого недостатка. Дисковый массив с чередует блоки данных и блоки контроля чётности. | от 3 | 1 диска | +| RAID6 | Массив из четырёх или более дисков с проверкой чётности `P+Q` (двумя томами чётности) или `DP` (разработанный для защиты от потери данных при выходе из строя сразу двух жестких дисков в массиве). | от 4 | 2 дисков | +| RAID01 | Массив типа RAID 1, состоящий из двух вложенных массивов типа RAID 0. | от 4, чётное | от 1 до N/2 дисков | +| RAID10 | Массив типа RAID 0, составленный из двух и более RAID 1 (зеркалированных пар). | от 4, чётное | от 1 до N/2 дисков | +| RAID51 | Массив типа RAID 1, зеркалирующий два RAID 5. | от 6, чётное | 2 до N/2+1 дисков | + +https://ru.wikipedia.org/wiki/RAID \ No newline at end of file diff --git a/module2/01_partitions_raid_lvm_fs/tasks.md b/module2/01_partitions_raid_lvm_fs/tasks.md index e335651..fd62495 100644 --- a/module2/01_partitions_raid_lvm_fs/tasks.md +++ b/module2/01_partitions_raid_lvm_fs/tasks.md @@ -14,21 +14,7 @@ -### Таблица 1. Типы RAID массивов -|Тип| Описание| Количество дисков | Выдерживает потерю | -|---|---------|-----------| ------ | -| RAID0 | Дисковый массив из двух или более жёстких дисков без резервирования (striping — «чередование»). | от 2 | 0 дисков | -| RAID1 | Массив из двух дисков являющихся полными копиями друг друга (mirroring — «зеркалирование»). | от 2 | N-1 дисков | -| RAID2 | Данные распределяются по дискам, предназначенным для хранения информации, так же, как и в RAID 0, но требуются выделенные диски в массиве для хранения кодов Хэмминга для коррекции ошибок. | от 3 | 1 диска | -| RAID3 | В массиве RAID 3 из N дисков данные разбиваются на куски размером меньше сектора и распределяются по N-1 дискам. Ещё один диск используется для хранения блоков чётности. Коррекция ошибок проще, чем в RAID 2, коды коррекции занимают 1 диск, вместо log2(N) дисков. | от 4 | 1 диска | -| RAID4 | RAID 4 похож на RAID 3, но отличается от него тем, что данные разбиваются на блоки, а не на байты. Отчасти это решает проблему низкой скорости чтения данных небольшого объёма. | от 4 | 1 диска | -| RAID5 | Основным недостатком уровней RAID от 2-го до 4-го является невозможность производить параллельные операции записи, так как для хранения информации о чётности используется отдельный контрольный диск. RAID 5 не имеет этого недостатка. Дисковый массив с чередует блоки данных и блоки контроля чётности. | от 3 | 1 диска | -| RAID6 | Массив из четырёх или более дисков с проверкой чётности `P+Q` (двумя томами чётности) или `DP` (разработанный для защиты от потери данных при выходе из строя сразу двух жестких дисков в массиве). | от 4 | 2 дисков | -| RAID01 | Массив типа RAID 1, состоящий из двух вложенных массивов типа RAID 0. | от 4, чётное | от 1 до N/2 дисков | -| RAID10 | Массив типа RAID 0, составленный из двух и более RAID 1 (зеркалированных пар). | от 4, чётное | от 1 до N/2 дисков | -| RAID51 | Массив типа RAID 1, зеркалирующий два RAID 5. | от 6, чётное | 2 до N/2+1 дисков | - -https://ru.wikipedia.org/wiki/RAID + ## 1. Программный RAID `mdadm` diff --git a/module2/04_postfix_dovecot/lection.md b/module2/04_postfix_dovecot/lection.md index 8c15e8c..8d92553 100644 --- a/module2/04_postfix_dovecot/lection.md +++ b/module2/04_postfix_dovecot/lection.md @@ -308,35 +308,35 @@ AGENTS = service names ∈ /etc/postfix/master.cf Самый простой способ размещения дополнительного домена - это добавить имя домена к доменам, перечисленным в конфигурационном параметре Postfix `mydestination`, и добавить имена пользователей в файл паролей UNIX `/etc/passwd`. При таком подходе не делается различий между каноническими ( `canonical` ) и размещенными ( `hosted` ) доменами. Каждое имя пользователя может получать почту в каждом домене. ``` myhostname = stud12.myoffice.ru -mydomain = myoffice.ru -mydestination = myoffice.space $myhostname localhost.$mydomain +mydomain = stud12.myoffice.ru +mydestination = stud12.myoffice.space $myhostname localhost.$mydomain ``` Ограничениями данного подхода являются: - * Полное отсутствие разделения: почта для info@stud12.myoffice.ru доставляется на ту же системную учетную запись UNIX, что и почта для info@myoffice.space. + * Полное отсутствие разделения: почта для info@stud12.myoffice.ru доставляется на ту же системную учетную запись UNIX, что и почта для info@stud12.myoffice.space. * При наличии пользователей в файле паролей UNIX администрирование большого числа пользователей становится неудобным. ### Виртуальные псевдонимы -При использовании подхода, описанного в данном разделе, каждый размещаемый домен может иметь свой собственный адрес электронной почты `info@stud12.myoffice.ru` и `info@myoffice.space`. Однако при этом по-прежнему используются системные учетные записи UNIX для доставки локальных почтовых ящиков. +При использовании подхода, описанного в данном разделе, каждый размещаемый домен может иметь свой собственный адрес электронной почты `info@stud12.myoffice.ru` и `info@stud12.myoffice.space`. Однако при этом по-прежнему используются системные учетные записи UNIX для доставки локальных почтовых ящиков. -При использовании виртуальных доменов-псевдонимов каждый размещаемый адрес привязывается к локальной учетной записи UNIX-системы или к удаленному адресу. Они не обязательно должны ссылаться на системные учетные записи UNIX на вашей машине. В приведенном ниже примере показано, как использовать этот механизм для домена myoffice.space. +При использовании виртуальных доменов-псевдонимов каждый размещаемый адрес привязывается к локальной учетной записи UNIX-системы или к удаленному адресу. Они не обязательно должны ссылаться на системные учетные записи UNIX на вашей машине. В приведенном ниже примере показано, как использовать этот механизм для домена stud12.myoffice.space. ``` 1 /etc/postfix/main.cf: -2 virtual_alias_domains = myoffice.space ...other hosted domains... +2 virtual_alias_domains = stud12.myoffice.space ...other hosted domains... 3 virtual_alias_maps = hash:/etc/postfix/virtual ``` ``` 5 /etc/postfix/virtual: -6 postmaster@myoffice.space postmaster -7 info@myoffice.space joe -8 sales@myoffice.space jane +6 postmaster@stud12.myoffice.space postmaster +7 info@stud12.myoffice.space joe +8 sales@stud12.myoffice.space jane 9 # Uncomment entry below to implement a catch-all address -10 # @myoffice.space jim +10 # @stud12.myoffice.space jim 11 ...virtual aliases for more domains... ``` -Виртуальные псевдонимы решает одну проблему: он позволяет каждому домену иметь свой собственный почтовый адрес. Например это даёт возможность работать с ящиками `info@stud12.myoffice.ru` и `info@myoffice.space` разным пользователям. +Виртуальные псевдонимы решает одну проблему: он позволяет каждому домену иметь свой собственный почтовый адрес. Например это даёт возможность работать с ящиками `info@stud12.myoffice.ru` и `info@stud12.myoffice.space` разным пользователям. Но при этом остается один недостаток: каждый виртуальный адрес привязывается к системной учетной записи UNIX. При добавлении большего количества виртуальных адресов увеличивается и количество системных учетных записей UNIX. В следующем разделе эта проблема будет устранена. diff --git a/module2/09_ansible/tasks.md b/module2/09_ansible/tasks.md index 656014e..5c1b0b7 100644 --- a/module2/09_ansible/tasks.md +++ b/module2/09_ansible/tasks.md @@ -179,7 +179,7 @@ $ ansible cluster -m apt -a "name=htop state=present" #### 1.2.6 Эскалация прав доступа -Для повышения прав доступа до суперпользователя на управляемых машинах используется ключ `--become` или сокращенный вариант `-b`. Если вы не настроили sudo без запроса пароля на управялемых машинах, вы можете добавить ключ `--ask-become-pass` или сокращенный вариант `-K` для запроса пароля. По умолчанию `--become-user` равен `root`. +Для повышения прав доступа до суперпользователя на управляемых машинах используется ключ `--become` или сокращенный вариант `-b`. Если вы не настроили sudo без запроса пароля на управляемых машинах, вы можете добавить ключ `--ask-become-pass` или сокращенный вариант `-K` для запроса пароля. По умолчанию `--become-user` равен `root`. ``` $ ansible cluster -m apt -a "name=htop state=present" --become --ask-become-pass ```