Mostly data processing tasks and formatting changes of first 3 labs.

pull/1/head
Vladimir Protsenko 1 year ago
parent 29abb9e336
commit 379c889595

@ -1,14 +1,15 @@
# Решения
# 1
Вы в директории /home/stud/data. Какая из команд переместит вас в домашнюю директорию?
## 1
Вы в директории `/home/stud/data`. Какая из команд переместит вас в домашнюю директорию?
```
3 cd /home/stud
5 cd ~
7 cd ~/data/..
8 cd
9 cd ..
```
# 2
## 2
Создайте файл dummy в /tmp. Попробуйте удалить его указав флаг -i для команды rm. В чём отличие удаления файла с этим флагом и без него?
```
mkdir /tmp/dummy
@ -20,13 +21,13 @@ rm -r /tmp/dummy
```
Отличие в запросе подтверждения действия.
# 3
## 3
Создайте папку backup в домашней директории. Одновременно скопируйте файл .bashrc в /tmp/ и в backup с помощью cp.
```
$ mkdir ~/backup
$ cp .bashrc ~/backup; cp .bashrc /tmp/
```
# 4
## 4
Повторите структуру директории:
```
mkdir project
@ -48,7 +49,7 @@ mkdir backup
mkdir shared
```
# 5
## 5
Скопируйте файлы экспериментов в backup, но распределите по папкам разные типы файлов. .data в backup/dataset, dat-calibration в backup/calibration, логи в backup/logs. В shared поместите все файлы, созданные 23 числа в папку 23day. Напишите команды в двух вариантах: с относительными путями и с абсолютными.
```
@ -67,25 +68,25 @@ cp $PD/raw/*-exp?-calibration.dat backup/calibration
cp $PD/raw/*.log ./backup/logs/
```
# 6
## 6
Посчитайте количество строк в файле /var/log/messages.
```
sudo wc -l /var/log/messages
sudo cat /var/log/messages | wc -l
```
# 7
## 7
Инициализируйте файл head_tail_messages с помощью команды head из строк в /var/log/messages, затем добавьте в head_tail_messages последние 23 строки из /var/log/messages.
```
sudo head /var/log/messages > head_tail_messages
sudo tail -n 23 /var/log/messages >> head_tail_messages
```
# 8
## 8
Создайте псевдоним "dc", который разрешается в команду "cd" для случаев опечатки.
```
alias dc=”cd”
```
# 9
## 9
Прочитайте мануал `man ls` и напишите `ls` команду, которая выводит список файлов в следующем виде:
* список файлов включает скрытые,
@ -95,14 +96,16 @@ alias dc=”cd”
```
ls -caht или ls -cahtl
```
# 10
## 10
Запишите в переменную среды PATH значение "". Как это повлияло на выполнение команд? Перезайдите по ssh и попробуйте вызывать любую команду заново. Сохранились ли изменения?
```
export PATH=””
следствие: ни один исполняемый файл системой теперь не находится
после переподключения система вернулась в прежнее состояние
```
# 11
## 11
Модифицируйте команду так, чтобы у директорий в начале названия присутствовал глобальный индекс idx.
```
idx=0;
@ -118,7 +121,8 @@ done
```
idx=-1; for species in cubane ethane methane; do for temperature in 25 30 37 40; do mkdir $idx-$species-$temperature; ((idx+=1)); done; done
```
# 12
## 12
(*) Напишите команду или сценарий для рекурсивного поиска самого последнего измененного файла в каталоге. В общем, можете ли вы перечислить все файлы по давности?
Плохое решение
@ -134,23 +138,26 @@ find ./ -type f -printf "%T+ %H%P\n" 2>/dev/null | sort -r
%H - путь к директории, в которой файл найден,
%P - имя файла.
# 13
## 13
Напишите цикл, который проходит по списку файлов в текущей директории и выводит полный путь к директории и имя файла.
```
for f in $(ls); do echo $(pwd)/$f; done
```
# 14
## 14
Выведите результат сложения 10 и 4 с помощью bash синтаксиса для арифметических операций.
```
echo $((10 + 4))
```
# 15
## 15
Выведите результат умножения двух переменных с помощью bash синтаксиса для арифметических операций.
```
a=1; b=2; echo $((a*b))
```
# 16
## 16
Напишите команду, которая рекурсивно находит все HTML-файлы в папке и запаковывает их в tar.gz архив. Ваша команда должна работать, даже если в файлах есть пробелы.
```
find . -type f -name "*.html" -print0 | xargs -0 tar cfz htmls.tar.gz
```
```

@ -1,6 +1,6 @@
# Задания
# 1
## 1
Повторите структуру директории с помощью команд `mkdir` и `touch`:
```
project/
@ -25,7 +25,7 @@ project/
`-- path
```
# 2
## 2
Вы в директории `/home/stud/project/`. Какая из команд переместит вас в домашнюю директорию?
```
1 cd .
@ -39,40 +39,40 @@ project/
9 cd ..
```
# 3
## 3
Перейдите в папку `backup`. Используя команду `cp`, выполните следующие действия одной строкой:
- скопируйте два файла: `.bashrc` и `.bash_profile` в папку `backup`,
- скопируйте файл `.bashrc` в две директории: `/tmp/` и `shared`.
# 4
## 4
Создайте файл `dummy` в `/tmp`. Попробуйте удалить его указав флаг `-i` для команды `rm`. В чём отличие удаления файла с этим флагом и без него?
# 5
## 5
Скопируйте файлы экспериментов в `backup`, но распределите их по папкам. Файлы с расширением `.datа` в `backup/data`, файлы с расширением `.calib` в `backup/calibration`, логи `.log` в `backup/logs`. В `shared` поместите все файлы, созданные 23 числа в папку `23day`. Напишите команды в двух вариантах: с относительными путями и с абсолютными и проверьте, что их выполнение даёт одинаковый результат.
# 6
## 6
Посчитайте количество строк, слов и символов в файле `/var/log/dpkg.log`.
# 7
## 7
Инициализируйте файл `head_tail_messages` с помощью команды `head` из строк в `/var/log/dpkg.log`. Затем добавьте в `head_tail_messages` последние 23 строки из `/var/log/dpkg.log`.
# 8
## 8
Постройте конвейр с помощью оператора `|`, который считывает содержимое `/var/log/dpkg.log`, находит только строки содержащие слово `perl`, сохраняет результат в файл `/tmp/perl_pkgs` и одновременно выводит в консоль количество найденных строк.
# 9
## 9
Выполните две команды: `head /nonexistent; echo Ok` и `head /nonexistent && echo Ok`. В чём отличие в поведении?
# 10
## 10
Оператор `||` похож на оператор ИЛИ в программировании. Что вы ожидаете увидеть при запуске `mkdir test || echo Ok`? Проверьте так ли это.
# 11
## 11
Создайте псевдонимы: `dc`, `chomd` которые разрешаются в команды: `cd`, `chmod` чтобы наконец решить проблему опечаток.
Создайте псевдоним `ls` для команды `ls -alF` и `cdw` для команды `cd /home/stud/project/`. Проверьте работу псведонимов.
Удалите псевдоним `ls` командой `unalias`. Проверьте, что выдача соответствует оригинальной команде `ls`.
# 12
## 12
Прочитайте мануал `man ls`. Напишите `ls` команду, которая выводит список файлов в следующем виде:
- список файлов включает скрытые,
- размер файла указан с метрическими приставками (e.g. 454M вместо 454279954),
@ -88,13 +88,13 @@ drwxr-xr-x 5 user group 160 Jan 14 09:53 .
drwx------+ 47 user group 1.5K Jan 12 18:08 ..
```
# 13
## 13
Попробуйте вывести содержимое переменной среды `HOME` с помощью `echo` в одинарных и двойных кавычках. В чём разница?
# 14
## 14
Запишите в переменную среды `PATH` значение `""`. Как это повлияло на выполнение команд? Перелогиньтесь и попробуйте вызывать любую команду заново. Сохранилиcь ли изменения?
# 15
## 15
C помощью bash синтаксиса для арифметических операций выведите результат:
- сложения 10 и 4,
- умножения 10 на 4,
@ -102,7 +102,7 @@ C помощью bash синтаксиса для арифметических
Сохраните результат операции `a % b` в переменную `c`, где `a` и `b` результаты любых предыдущих двух операций. Выведите `с`.
# 16
## 16
Выполните в терминале следующую команду в директории `/tmp`:
```
for species in cubane ethane methane;
@ -115,10 +115,10 @@ done
```
Что в результате вы видите в консоли? Модифицируйте команду так, чтобы у директорий в начале названия присутствовал глобальный индекс `idx`. На каждой итерации внутреннего цикла `idx` должна увеличиваться на единицу.
# 17
## 17
Напишите цикл, который проходит по списку файлов в текущей директории и выводит полный путь к директории и имя файла.
# 18
## 18
Далее поработайте с командой `watch date`. Команда `watch` вызывает периодически переданную ей команду в качестве аргумента. Это удобно для организации простого мониторинга.
Первый раз вызовите команду и отправьте процессу сигнал `SIGINT` комбинацией клавишь `Ctrl+C`.
@ -129,8 +129,8 @@ done
*man страницы: kill, signal*
# 19
## 19
Напишите команду, которая рекурсивно находит все HTML-файлы в папке и упаковывает их в `tar.gz` архив. Используйте `find` и `xargs`. Ваша команда должна работать, даже если в файлах есть пробелы (подсказка: используйте `null` разделитель).
# 20
## 20
(*) Напишите команду или сценарий для рекурсивного поиска самого последнего измененного файла в каталоге. В общем, можете ли вы перечислить все файлы по давности?

@ -194,16 +194,12 @@
** Наберите d$ для удаления текста до конца строки. **
1. Нажмите <ESC>, чтобы перейти в обычный режим.
2. Переместите курсор вниз, к строке помеченной --->.
3. Переместите курсор к концу правильной строки (ПОСЛЕ первой точки).
4. Наберите d$ для удаления остатка строки.
---> Кто-то набрал окончание этой строки дважды. окончание этой строки дважды.
5. Чтобы лучше разобраться в том, как это происходит, переходите к Уроку 2.3.
```
@ -264,11 +260,8 @@ d объект
для упрощения сделать возможным удаление строки набором двух d.
1. Переместите курсор вниз, ко второй строке фразы.
2. Наберите dd для удаления строки.
3. Теперь переместитесь к четвёртой строке.
4. Наберите 2dd для удаления двух строк.
---> 1) Летом я хожу на стадион,
@ -377,13 +370,9 @@ d объект
[число] c объект ИЛИ c [число] объект
2. Объекты также совпадают: w (слово), $ (конец строки) и т.п.
3. Переместите курсор вниз, к строке помеченной --->.
4. Перейдите к первой ошибке.
5. Наберите c$ и отредактируйте первую строку так, чтобы она совпадала со
второй, после чего нажмите <ESC>.
5. Наберите c$ и отредактируйте первую строку так, чтобы она совпадала со второй, после чего нажмите <ESC>.
---> Конец этой строки нуждается в помощи, чтобы стать похожим на второй.
---> Конец этой строки нуждается в помощи команды c$ .
@ -402,7 +391,6 @@ d объект
[число] c объект ИЛИ c [число] объект
Теперь переходите к следующему уроку.
```
# Урок 4

@ -1,5 +1,4 @@
Добро пожаловать в задания https://regexone.com!
Уроки переведены и адаптированы под выполнение в vim.
Задания взяты с ресурса https://regexone.com. Уроки переведены и адаптированы под выполнение в vim.
## Урок 0: Введение и азбука
@ -40,7 +39,7 @@
найдите abc
```
---
## Урок 1½: 123-е
@ -66,7 +65,7 @@
найдите цифры в define "123"
найдите цифры в var g = 123;
```
---
## Урок 2: Точка
@ -93,7 +92,7 @@
найдите ?=+.
пропустите abc1
```
---
## Урок 3. Соответствие определенным символам
@ -119,7 +118,7 @@
пропуститe ran
пропуститe pan
```
---
## Урок 4. Исключение определенных символов
@ -145,7 +144,7 @@
найдите dog
пропустите bog
```
---
## Урок 5: Диапазоны символов

@ -0,0 +1,76 @@
# Задания на обработку данных в bash
## 1
Вызовите `"for f in `seq 20`; do echo $RANDOM >> rnds; done"` и отсортируйте данные `rnds`, в алфавитном порядке, по возрастанию чисел.
## 2
Сохраните эти первые 10 записей датасета titanic в файл `titanic.csv` для последующих заданий:
```
PassengerId,Survived,Pclass,Name,Sex,Age,SibSp,Parch,Ticket,Fare,Cabin,Embarked
1,0,3,"Braund, Mr. Owen Harris",male,22,1,0,A/5 21171,7.25,,S
2,1,1,"Cumings, Mrs. John Bradley (Florence Briggs Thayer)",female,38,1,0,PC 17599,71.2833,C85,C
3,1,3,"Heikkinen, Miss. Laina",female,26,0,0,STON/O2. 3101282,7.925,,S
4,1,1,"Futrelle, Mrs. Jacques Heath (Lily May Peel)",female,35,1,0,113803,53.1,C123,S
5,0,3,"Allen, Mr. William Henry",male,35,0,0,373450,8.05,,S
6,0,3,"Moran, Mr. James",male,,0,0,330877,8.4583,,Q
7,0,1,"McCarthy, Mr. Timothy J",male,54,0,0,17463,51.8625,E46,S
8,0,3,"Palsson, Master. Gosta Leonard",male,2,3,1,349909,21.075,,S
9,1,3,"Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg)",female,27,0,2,347742,11.1333,,S
10,1,2,"Nasser, Mrs. Nicholas (Adele Achem)",female,14,1,0,237736,30.0708,,C
```
## 3
Выведите первую колонку, используя `awk`.
## 4
Выведите содержимое файла без заголовка.
## 5
Выведите первую и третью колонку файла, используя `awk`.
## 6
Выведите только те строки, которые содержат строку `male` или `female`:
## 7
Отсортируйте значения `titanic.csv` по значению `Ticket` (9 колонка):
## 8
Уберите дублирующиеся строки на основании третьей колонки, используя `awk`.
## 9
Посчитайте сумму колонки `Fare`, используя `awk`.
## 10
Сконвертируйте файл из csv в json формат, используя `jq`.
## 11
Используя `awk` сконвертируйте строки со значениями из колонок `PassengerId`, `Survived`, `Pclass` файла в набор `SQL INSERT` утверждений, которые можно использовать для импорта в SQL базу данных. Используйте `awk`.
## 12
Конвейеры Unix позволяли организовывать сложные преобразования данных ещё до фреймворков обработки больших данных и сейчас иногда могут быть даже быстрее [Adam D. Command-line Tools can be 235x Faster than your Hadoop Cluster].
Найдите гистограмму слов по методу mapreduce с помощью утилит и операторов конвейера. Гистограмма должна быть отсортирована по частоте встречи слова в тексте.
MapReduce выполняет следующие действия в первой фазе: разбивает содержимое файла на слова, сортирует их, каждому слову сопоставляет 1. Во второй фазе складывает единицы каждого слова, что даёт конечный результат. Используйте любой набор утилит и конструкций bash. Одно из решений задействует: `uniq`, `sort`, `cat`, `sed`.
## 13
Повысьте права до пользователя root с помощью команды `su - root`. Найдите в системном логе `/var/log/auth.log` события "authentication failure", уберите начало строки до "authentication failure" и сохраните их в файл. Следуя правилам хорошего тона, после выполнения операций не забудьте выйти из аккаунта суперпользователя.
## 14
Выведите 10 самых больших открытых файлов в системе, используя `lsof` и `awk`.
# Man страницы
```
man awk
man lsof
man sort
man uniq
man cat
man sed
man jq
man su
```
# Ссылки
[Adam D. Command-line Tools can be 235x Faster than your Hadoop Cluster] https://adamdrake.com/command-line-tools-can-be-235x-faster-than-your-hadoop-cluster.html

@ -0,0 +1,117 @@
# Задания на обработку данных в bash
## 1
Вызовите `"for f in `seq 20`; do echo $RANDOM >> rnds; done"` и отсортируйте данные `rnds`, в алфавитном порядке, по возрастанию чисел.
```
sort rnds
sort -n rnds
```
## 2
Сохраните эти первые 10 записей датасета titanic в файл `titanic.csv` для последующих заданий:
```
PassengerId,Survived,Pclass,Name,Sex,Age,SibSp,Parch,Ticket,Fare,Cabin,Embarked
1,0,3,"Braund, Mr. Owen Harris",male,22,1,0,A/5 21171,7.25,,S
2,1,1,"Cumings, Mrs. John Bradley (Florence Briggs Thayer)",female,38,1,0,PC 17599,71.2833,C85,C
3,1,3,"Heikkinen, Miss. Laina",female,26,0,0,STON/O2. 3101282,7.925,,S
4,1,1,"Futrelle, Mrs. Jacques Heath (Lily May Peel)",female,35,1,0,113803,53.1,C123,S
5,0,3,"Allen, Mr. William Henry",male,35,0,0,373450,8.05,,S
6,0,3,"Moran, Mr. James",male,,0,0,330877,8.4583,,Q
7,0,1,"McCarthy, Mr. Timothy J",male,54,0,0,17463,51.8625,E46,S
8,0,3,"Palsson, Master. Gosta Leonard",male,2,3,1,349909,21.075,,S
9,1,3,"Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg)",female,27,0,2,347742,11.1333,,S
10,1,2,"Nasser, Mrs. Nicholas (Adele Achem)",female,14,1,0,237736,30.0708,,C
```
## 3
Выведите первую колонку, используя `awk`.
```
awk -F, '{print $1}' file.csv
```
## 4
Выведите содержимое файла без заголовка.
```
tail -n +2 file.csv
```
## 5
Выведите первую и третью колонку файла, используя `awk`.
```
awk -F, '{print $1 "," $3}' file.csv
```
## 6
Выведите только те строки, которые содержат строку `male` или `female`:
```
grep "female" file.csv
```
## 7
Отсортируйте значения `titanic.csv` по значению `Ticket` (9 колонка):
```
sort -t, -k2 file.csv
```
## 8
Уберите дублирующиеся строки на основании третьей колонки, используя `awk`.
```
awk -F, '!seen[$1]++' file.csv
```
## 9
Посчитайте сумму колонки `Fare`, используя `awk`.
```
awk -F, '{sum+=$3} END {print sum}' file.csv
```
## 10
Сконвертируйте файл из csv в json формат, используя `jq`.
```
jq -R -r 'split(",") | {name:.[0],age:.[1]}' file.csv
```
## 11
Используя `awk` сконвертируйте строки со значениями из колонок `PassengerId`, `Survived`, `Pclass` файла в набор `SQL INSERT` утверждений, которые можно использовать для импорта в SQL базу данных. Используйте `awk`.
```
awk -F, '{printf "INSERT INTO table VALUES (\"%s\", \"%s\", \"%s\");\n", $1, $2, $3}' file.csv
```
## 12
Конвейеры Unix позволяли организовывать сложные преобразования данных ещё до фреймворков обработки больших данных и сейчас иногда могут быть даже быстрее [Adam D. Command-line Tools can be 235x Faster than your Hadoop Cluster].
Найдите гистограмму слов по методу mapreduce с помощью утилит и операторов конвейера. Гистограмма должна быть отсортирована по частоте встречи слова в тексте.
MapReduce выполняет следующие действия в первой фазе: разбивает содержимое файла на слова, сортирует их, каждому слову сопоставляет 1. Во второй фазе складывает единицы каждого слова, что даёт конечный результат. Используйте любой набор утилит и конструкций bash. Одно из решений задействует: `uniq`, `sort`, `cat`, `sed`.
```
cat /var/log/dpkg.log | sed 's/ /\n/g' | sort -k1 | uniq -c | sort -k1 -n
```
## 13
Повысьте права до пользователя root с помощью команды `su - root`. Найдите в системном логе `/var/log/auth.log` события "authentication failure", оставьте в строке только дату и имя пользователя и сохраните их в файл. Следуя правилам хорошего тона, после выполнения операций не забудьте выйти из аккаунта суперпользователя.
```
cat /var/log/auth.log | grep 'authentication failure' | sed 's/^\(.\{15\}\).*authentication failure; logname=\(\w\+\) .*/\1 \2/g'
```
## 14
Выведите 10 самых больших открытых файлов в системе, используя `lsof` и `awk`.
```
lsof / | awk '{ if($7 > 1048576) print $7/1048576 "MB" " " $9 " " $1 }' | sort -n -u | tail
```
# Man страницы
```
man awk
man lsof
man sort
man uniq
man cat
man sed
man jq
man su
```
# Ссылки
[Adam D. Command-line Tools can be 235x Faster than your Hadoop Cluster] https://adamdrake.com/command-line-tools-can-be-235x-faster-than-your-hadoop-cluster.html

@ -1,12 +0,0 @@
# Задания на обработку данных в bash
## 1
Найдите на удалённом сервере в системном логе события "authentication failure" в /var/log/auth.log, уберите начало строки до "authentication failure" и сохраните их в файл.
## 2
Вызовите "for f in `seq 20`; do echo $RANDOM >> rnds; done" и отсортируйте данные rnds, в алфавитном порядке, по возрастанию чисел.
## 3
Конвейеры Unix позволяли организовывать сложные преобразования данных ещё до фреймворков обработки больших данных. Найдите гистограмму слов по методу mapreduce с помощью утилит и операторов конвейера. Гистограмма должна быть отсортирована по частоте встречи слова в тексте.
MapReduce выполняет следующие действия в первой фазе: разбивает содержимое файла на слова, сортирует их, каждому слову сопоставляет 1. Во второй фазе складывает единицы каждого слова, что даёт конечный результат. Используйте любой набор утилит и конструкций bash. Одно из решений задействует: uniq, sort, cat, sed.

@ -1,18 +1,18 @@
# Задание 3
0. Узнайте статус сервиса systemd-networkd и systemd-resolved
0. Узнайте статус сервиса `systemd-networkd` и `systemd-resolved`
```
# systemctl status systemd-networkd
# systemctl status systemd-resolved
```
1. Активируйте networkd, если он не активирован (disabled)
1. Активируйте `networkd`, если он не активирован (disabled)
```
# systemctl enable systemd-networkd
# systemctl enable systemd-resolved
```
2. Запустите networkd, если он не запущен (inactive, dead)
2. Запустите `networkd`, если он не запущен (inactive, dead)
```
# systemctl start systemd-networkd
# systemctl start systemd-resolved
@ -23,10 +23,10 @@
# ip link
```
4. Для настройки интерфейса ens18 машины stud1-2v1 создайте
или отредактируйте в каждой /etc/systemd/network/ens18.network.
4. Для настройки интерфейса `ens18` машины `stud1-2v1` создайте
или отредактируйте в каждой `/etc/systemd/network/ens18.network`.
Адрес машины взят из такой сети, в которой присутствует шлюз в
интернет 10.160.179.1.
интернет `10.160.179.1`.
конфигурация ens18.network машины stud1-2v1
```
@ -48,16 +48,16 @@ Gateway=10.160.179.1
stud@stud1-2v1$ ping 1.1.1.1
```
7. Для настройки DNS ens18 машины stud1-2v1 отредактируйте
7. Для настройки DNS `ens18` машины `stud1-2v1` отредактируйте
/etc/systemd/resolved.conf.
конфигурация resolved.conf машины stud1-2v1
конфигурация `resolved.conf` машины `stud1-2v1`
```
[Resolve]
DNS=1.1.1.1
```
8. Перезагрузите systemd-resolved
8. Перезагрузите `systemd-resolved`
```
# systemctl restart systemd-resolved
```

@ -1,14 +1,14 @@
# Задание 1
Для виртуальных машин studX-1vX и studX-2vX настройте статический адрес в помощью systemd в подсети 192.168.Х.0/24. Используйте команду networkctl и файлы настроек /etc/systemd/network/ens18.network. Проверьте, что машины видят друг друга с помощью команды ping IP-адрес-соседней-машины.
Для виртуальных машин `studX-1vX` и `studX-2vX` настройте статический адрес в помощью `systemd` в подсети `192.168.Х.0/24`. Используйте команду `networkctl` и файлы настроек `/etc/systemd/network/ens18.network`. Проверьте, что машины видят друг друга с помощью команды `ping IP-адрес-соседней-машины`.
# Задание 2
На машине studX-1vX настройте в подсети 192.168.X.0/24 DHCP сервер в файле /etc/systemd/network/ens18.network. На другой машине studX-2vX настройте получение IP адреса по DHCP. Проверьте, что машины видят друг друга.
На машине `studX-1vX` настройте в подсети `192.168.X.0/24` DHCP сервер в файле `/etc/systemd/network/ens18.network`. На другой машине `studX-2vX` настройте получение IP адреса по DHCP. Проверьте, что машины видят друг друга.
# Задание 3
На машине studX-1vX настройте доступ в интернет. В настройках Hardware измените Network Device на vmbr499, перейдя таким образом в другую vlan. В качестве шлюза используйте адрес 10.160.179.1. В качестве адреса возьмите 10.160.179.200, прибавив X к последнему октету.
На машине `studX-1vX` настройте доступ в интернет. В настройках Hardware измените Network Device на `vmbr499`, перейдя таким образом в другую `vlan`. В качестве шлюза используйте адрес `10.160.179.1`. В качестве адреса возьмите `10.160.179.200`, прибавив `X` к последнему октету.
# Задание 4

@ -3,6 +3,8 @@
### 0.
Обновите список пакетов из настроенных репозиториев в /etc/apt/sources.list командой apt.
; TODO как должен выглядеть sources.list
### 1.
Установите пакет apt-file с помощью apt.

@ -2,20 +2,22 @@
## Подготовка среды проведения лабораторных работ
Лабораторные проводятся на виртуальных машинах в системе виртуализации Proxmox.
Лабораторные проводятся на виртуальных машинах в системе виртуализации Proxmox. Задания выкладываются в публичный git репозиторий. Для получения новых заданий студенты первоначально скачивают их по ссылке командой `git clone`, а затем в начале каждого урок обновляют их командой `git pull`.
Определим N как количество студентов умноженное на 1.5 и округлим в большую сторону. Определим X как идентификатор от 1 до N.
Будем считать, что N - количество студентов умноженное на 1.5, округлённое в большую сторону. X - идентификатор студента от 1 до N.
Создайте N пользователей в Proxmox с именами studX (stud1, stud2, ...). Используйте Realm "Proxmox VE authentication server".
Загрузите образ debian-11.4.0-amd64-netinst.iso в Proxmox хранилище.
Для массового создания виртуальных машин рекомендуется использовать возможность Proxmox конвертации виртуальной машины в шаблон. Из шаблона копия создаётся на порядки быстрее по времени, чем при полном клонировании. Следуйте следующим шагам:
1. настройте машину с общими для всех копий настройками,
2. преобразуйте её в шаблон (template),
3. создайте клоны из шаблона и донастройте, если необходимо.
3. создайте клоны из шаблона и донастройте, если необходимо,
4. сделайте snapshot основных машин, чтобы вы и студенты имели возможность отката до рабочего состояния.
При наличии нескольких дисков рекомендуется RAID оптимизирующий производительность. Неправильный raid или медленный тип диска может привести к существенному замедлению работы во время установки ОС или пакетов.
Загрузите образ debian-11.4.0-amd64-netinst.iso в Proxmox хранилище.
### Основные виртуальные машины
@ -36,13 +38,15 @@
- 8 Гб оперативной памяти,
- 16 Гб дискового пространства.
Каждой виртуальной машине назначьте статический IPv4 адрес 10.160.179.10 + X (10.160.179.11, 10.160.179.12, ...).
Каждой виртуальной машине назначьте статический IPv4 адрес 10.160.179.10 + X (10.160.179.11, 10.160.179.12, ...). Используйте инструкцию из задания про настройку сети данного учебного модуля.
Установите минимальный дистрибутив debian на каждую. Установите пакеты:
- man-db,
- ssh,
- vim,
- tree.
- tree,
- jq,
- lsof.
Удалите пакет ifupdown.

Loading…
Cancel
Save