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

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

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

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

Добавлен: 11.01.2024

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

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

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ«НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»ФАКУЛЬТЕТ АВТОМАТИКИ И ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИКАФЕДРА ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИЛАБОРАТОРНАЯ РАБОТА №1ПО ПРЕДМЕТУ «АРХИТЕКТУРА ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ И СЕТЕЙ»Оценка характеристик персонального компьютераФАКУЛЬТЕТ: АВТФГРУППА: АВТ-СТУДЕНТ: ПРЕПОДАВАТЕЛЬ: Перышкова Е. Н. НОВОСИБИРСК 202*

Цель работы

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

Задание

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

Ход работы

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

Выводы

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

Приложение

Bash-скрипт

#!/bin/bashecho -n 'Дата: ' && date | awk '{print $2,$3}'echo -e "Имя учетной записи: $USER"echo -n 'Доменное имя ПК: ' && cat /etc/hostnameecho 'Процессор:'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 tempip -o link show | awk '{print $2}' | sed 's/://' » tempip a | grep 'link/' | awk '{print $2}' » tempip a | grep 'inet ' | awk '{print $2}' » temp#cat temptouch temp2echo ' № | Имя интерфейса | MAC адрес | IP адрес | Скорость соединения' » temp2echo '—— |——————————————— |————————————————— |———————————— |————————————————————' » temp2for ((i=1;i<=$count;i++))doname=`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"` ]thenspeed=`speedtest-cli —source $(echo $ip | sed -r 's_/.+__') —simple | grep "Download" | awk '{print $2,$3}'`str+=$speedelsestr+="-"fiecho $str » temp2donecat temp2 | column -t -s '|' -o '|'rm temprm temp2