Файл: Лабораторная работа 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