Файл: Лабораторная работа 1 по предмету архитектура вычислительных систем и сетей Оценка характеристик персонального компьютера факультет автф.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 11.01.2024

Просмотров: 22

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

ФАКУЛЬТЕТ АВТОМАТИКИ И ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ

КАФЕДРА ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ



ЛАБОРАТОРНАЯ РАБОТА №1

ПО ПРЕДМЕТУ «АРХИТЕКТУРА ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ И СЕТЕЙ»

Оценка характеристик персонального компьютера

ФАКУЛЬТЕТ: АВТФ

ГРУППА: АВТ-

СТУДЕНТ: 

ПРЕПОДАВАТЕЛЬ: Перышкова Е. Н.

НОВОСИБИРСК 202*

Цель работы


Оценить характеристики персонального компьютера.

Задание


Написать bash-скрипт, который выводит на экран характеристики ПК в следующем формате:


Ход работы


Информация о дате и имени учетной записи получена из соответствующих переменных окружения. Для форматирования и вывода информации в соответствии с шаблоном использовались команды echo, sed и awk. Поиск строки осуществлялся командой grep. Информация о процессоре получена анализом результата вывода команды lscpu, об оперативной памяти – команды free, о жестком жиске – команды df. Информация о сетевых интерфейсах получена командой ip. Тестирование скорости соединения выполнялось при помощи утилиты speedtest. Формирование данных таблицы выполнялось с помощью временных файлов, выравнивание колонок – командой column.

Результат работы скрипта приведен на рисунке 1.



Рисунок 1. Скриншот терминала

Выводы


В ходе выполнения лабораторной работы написали bash-скрипт, который выводит на экран характеристики ПК в заданном формате и оценили их.

Приложение

Bash-скрипт


#!/bin/bash

echo -n 'Дата: ' && date | awk '{print $2,$3}'

echo -e "Имя учетной записи: $USER"

echo -n 'Доменное имя ПК: ' && cat /etc/hostname

echo 'Процессор:'

echo -e -n ' \t • ' && lscpu | grep 'Model name' | sed 's/Model name:/Имя модели - /' | awk '{print $1,$2,$3,$4,$5,$6}'

echo -e -n ' \t • ' && lscpu | grep 'Architecture' | sed 's/Architecture:/Архитектура - /' | awk '{print $1,$2,$3}'

echo -e -n ' \t • ' && echo -n 'Тактовая частота - ' && lscpu | grep '@' | awk '{print $NF}'

echo -e -n ' \t • ' && echo -n 'Количество ядер - ' && lscpu | grep 'Core(s) per socket' | awk '{print $NF}'

echo -e -n ' \t • ' && echo -n 'Количество потоков на одно ядро - ' && lscpu | grep 'Thread(s) per core' | awk '{print $NF}'

echo 'Оперативная память:'

echo -e -n ' \t • ' && echo -n 'Всего - ' && free | grep 'Mem' | awk '{print $2}'

echo -e -n ' \t • ' && echo -n 'Доступно - ' && free | grep 'Mem' | awk '{print $4}'

echo 'Жесткий диск:'

echo -e -n ' \t • ' && echo -n 'Всего - ' && df | grep '/cow' | awk '{print $2}'

echo -e -n ' \t • ' && echo -n 'Доступно - ' && df | grep '/cow' | awk '{print $4}'

echo -e -n ' \t • ' && echo -n 'Смонтировано в корневую систему - ' && df | grep '/cow' | awk '{print $NF}'

echo -e -n ' \t • ' && echo -n 'SWAP всего - ' && free | grep 'Swap' | awk '{print $2}'

echo -e -n ' \t • ' && echo -n 'SWAP доступно - ' && free | grep 'Swap' | awk '{print $4}'

echo 'Сетевые интерфейсы:'

count=`ls /sys/class/net | wc -l`

echo -e -n ' \t • ' && echo -e "Количество сетевых интерфейсов - $count \n"

touch temp

ip -o link show | awk '{print $2}' | sed 's/://' » temp

ip a | grep 'link/' | awk '{print $2}' » temp

ip a | grep 'inet ' | awk '{print $2}' » temp
#cat temp
touch temp2

echo ' № | Имя интерфейса | MAC адрес | IP адрес | Скорость соединения' » temp2

echo '—— |——————————————— |————————————————— |———————————— |————————————————————' » temp2

for ((i=1;i<=$count;i++))

do
name=`sed -n "${i}p" temp`

mac=`sed -n "$(($i+$count))p" temp`

ip=`sed -n "$(($i+$count*2))p" temp`
str="$i |$name |$mac |$ip |"
if [ $name != `echo "lo"` ]

then

speed=`speedtest-cli —source $(echo $ip | sed -r 's_/.+__') —simple | grep "Download" | awk '{print $2,$3}'`

str+=$speed

else

str+="-"

fi

echo $str » temp2

done
cat temp2 | column -t -s '|' -o '|'
rm temp

rm temp2