📋 Текст домашнего задания (из LMS)
ДЗ 6. Переменные. Управление процессами
- Зайти на сервер
- Объявить переменную через export:
ANDREW_VARIABLE=имя_группы - По пути
/opt/ГРУППА/ИМЯсоздать скрытый файл.process_management - В файл
.process_managementдописать (через>>):- Дату
- Строку «Welcome to Amazon server»
- Объём ОЗУ (RAM):
free -m | grep Mem | awk '{print $2}' - КОЛИЧЕСТВО процессов root:
ps -ef | grep root | grep -v grep | wc -l - Отфильтрованную свою переменную:
env | grep ANDREW - PID/PPID процесса
/usr/sbin/sshd -Dв форматеPID *** PPID *:
ps -ef | grep '[s]shd -D' | awk '{print "PID", $2, "PPID", $3}'
🛠️ Подготовка окружения
Для выполнения ДЗ необходимо подключиться к учебному серверу по SSH:
ssh -i ~/.ssh/id_rsa ec2-user@linux.itcareerhub.de
Убедитесь, что рабочая папка существует:
ls /opt/GROUP/NAME
Если папки нет — создайте (замените GROUP и NAME на реальные значения):
mkdir -p /opt/GROUP/NAME
📝 Пошаговое решение
Шаг 1: Объявить переменную ANDREW_VARIABLE
export ANDREW_VARIABLE=GROUP_NAME
Замените GROUP_NAME на имя своей группы. export необходим, чтобы переменная была видна через env.
Проверка:
echo $ANDREW_VARIABLE
env | grep ANDREW
Шаг 2: Создать скрытый файл .process_management
touch /opt/GROUP/NAME/.process_management
.process_management — скрытый файл. Обычный ls его не покажет. Для проверки используйте ls -la.
Шаг 3: Дописать дату
date >> /opt/GROUP/NAME/.process_management
>> — дописать в конец файла (а не перезаписать). Команда date выведет текущую дату и время.
Шаг 4: Дописать приветствие
echo "Welcome to Amazon server" >> /opt/GROUP/NAME/.process_management
Шаг 5: Дописать объём RAM
free -m | grep Mem | awk '{print $2}' >> /opt/GROUP/NAME/.process_management
free -m— вывод памяти в мегабайтахgrep Mem— оставить только строку «Mem:» (первая строка с данными)awk '{print $2}'— вывести второй столбец (total)
985 (объём RAM в MB).
Шаг 6: Подсчитать процессы пользователя root
ps -ef | grep root | grep -v grep | wc -l >> /opt/GROUP/NAME/.process_management
ps -ef— все процессы системыgrep root— строки с именем пользователя rootgrep -v grep— исключить строку самого процесса grepwc -l— подсчитать количество строк
Шаг 7: Дописать свою переменную
env | grep ANDREW >> /opt/GROUP/NAME/.process_management
В файл добавится строка вида: ANDREW_VARIABLE=GROUP_NAME
export ANDREW_VARIABLE=.... Если вы открыли новое подключение — нужно снова объявить переменную.
Шаг 8: Дописать PID и PPID процесса sshd
ps -ef | grep '[s]shd -D' | awk '{print "PID", $2, "PPID", $3}' >> /opt/GROUP/NAME/.process_management
grep '[s]shd -D'— паттерн[s]shdв квадратных скобках — трюк для исключения самого grep из результатов поиска: grep ищет буквально «sshd», но строка самой команды содержит «[s]shd», поэтому не совпадает с паттерномawk '{print "PID", $2, "PPID", $3}'— вывести: текст «PID», второй столбец (PID процесса), текст «PPID», третий столбец (PPID)
PID 123 PPID 1
✅ Проверка результата
cat /opt/GROUP/NAME/.process_management
Thu Jun 11 10:30:00 UTC 2026
Welcome to Amazon server
985
47
ANDREW_VARIABLE=GROUP_NAME
PID 123 PPID 1
(Значения будут другими на вашем сервере.)
Убедитесь, что файл скрытый (видно через ls -la):
ls -la /opt/GROUP/NAME/
В списке должна быть строка с именем .process_management.
🔗 Связь с теорией
- Теория: export и переменные — почему нужен export
- Примеры: конвейеры ДЗ — разобранные конвейеры free/ps/env
- Ошибки — почему важны grep -v grep и точка в имени файла