Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 7 
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 01.10.2012
У меня на Ubuntu 18.04 хорошо работает следующий микроскрипт:

Код:
#!/usr/bin/env bash

# CPU
printf "%-13s" 'CPU:'
cat /proc/cpuinfo | grep 'model name' | uniq | awk '{print $4" "$5" "$6" "$7" "$8}'

# Memory
printf "%-13s" 'MEMORY:'
OLDIFS=$IFS; IFS=$'\n'; CNT=0; ACC=''; for line in $(sudo dmidecode -t 17 | grep -P '^\s*(Manufac|Part|Size|Speed)'); do CNT=$[CNT + 1]; CLT=$(($CNT % 4)); [[ $CLT = 0 ]] && echo "$ACC $line" && ACC='' || ACC="$ACC $line"; done | uniq -c | sed 's/\s\+/ /g' | awk '{printf "%s", $1" x ("; $1=""; print $0" )"}'; IFS=$OLDIFS

# Motherboard
printf "%-13s" 'MOTHERBOARD:'
OLDIFS=$IFS; for line in $(sudo dmidecode -t 2 | grep -P 'Manufac|Product N'); do printf $line; done | sed 's/\s\+/ /g' | cut -d' ' -f2-; IFS=$OLDIFS

# Disk
OLDIFS=$IFS; IFS=$'\n'; CNT=0; ACC=''; for line in $(sudo lshw -class disk | grep -P '^\s*(product|size)'); do CNT=$[CNT + 1]; CLT=$(($CNT % 2)); [[ $CLT = 0 ]] && printf "%-13s" 'DISK:' && echo "$ACC $line" && ACC='' || ACC="$ACC $line"; done | sed 's/\s\+/ /g'; IFS=$OLDIFS

# OS
printf "%-13s" 'OS:'
cat /etc/*-release | grep -Po 'DISTRIB_DESCRIPTION=\K.*' | sed 's/"//g'


Буду рад более изящному/умному/короткому решению (не спец по bash). Интересно также посмотреть варианты/адаптации для других linux/unix систем.

В частности, пока не понял, почему 'printf' в цикле для дисков не делает паддинг. И пока не получается найти общего решения для GPU.



Партнер
 

Member
Статус: Не в сети
Регистрация: 21.09.2011
Откуда: Сызрань
Фото: 5
61e@4 писал(а):
Буду рад более изящному/умному/короткому решению (не спец по bash).

Bash это конечно замечательно...

sudo inxi -SMmCGD
Код:
System:    Host: pc-9376522043692 Kernel: 4.19.34-1-MANJARO x86_64 bits: 64
           Desktop: Xfce 4.13.3git-UNKNOWN Distro: Manjaro Linux
Machine:   Type: Desktop Mobo: Micro-Star model: B350M MORTAR ARCTIC (MS-7A37) v: 2.0
           serial: xxxxxxxxxx UEFI [Legacy]: American Megatrends v: A.F0 date: 09/21/2018
Memory:    RAM: total: 15.68 GiB used: 1.63 GiB (10.4%)
           Array-1: capacity: 256 GiB note: check slots: 4 EC: None
           Device-1: DIMM 0 size: No Module Installed
           Device-2: DIMM 1 size: 8 GiB speed: 2933 MT/s
           Device-3: DIMM 0 size: No Module Installed
           Device-4: DIMM 1 size: 8 GiB speed: 2933 MT/s
CPU:       Topology: 8-Core model: AMD Ryzen 7 1700 bits: 64 type: MT MCP L2 cache: 4096 KiB
           Speed: 2876 MHz min/max: N/A Core speeds (MHz): 1: 2876 2: 3346 3: 2809 4: 2820 5: 2800
           6: 2802 7: 2814 8: 2824 9: 2802 10: 2820 11: 2800 12: 2823 13: 2977 14: 2872 15: 3119
           16: 2783
Graphics:  Device-1: NVIDIA GP106 [GeForce GTX 1060 6GB] driver: nvidia v: 418.56
           Display: server: X.Org 1.20.4 driver: nvidia resolution: 1920x1080~60Hz
           OpenGL: renderer: GeForce GTX 1060 6GB/PCIe/SSE2 v: 4.6.0 NVIDIA 418.56
Drives:    Local Storage: total: 727.52 GiB used: 274.54 GiB (37.7%)
           ID-1: /dev/sda vendor: Plextor model: PX-256M3 size: 238.47 GiB
           ID-2: /dev/sdb vendor: Crucial model: CT525MX300SSD1 size: 489.05 GiB


 

Member
Статус: Не в сети
Регистрация: 01.10.2012
Juma84 писал(а):
Bash это конечно замечательно...

sudo inxi -SMmCGD


Как говорится, век живи - век учись! Спасибо, работает просто шикарно! :D

А bash это ужасно, просто ужасно. Но иногда интересно, и в однострочниках бывает очень удобно. Автор просто герой - 'inxi' это bash-скрипт размером в 16337 строк, очень красиво написанный (на беглый взгляд, да и насколько это, вообще, возможно для bash). )))


 

Junior
Статус: Не в сети
Регистрация: 13.05.2019
Откуда: Санкт-Петербург
Juma84 писал(а):
Bash это конечно замечательно...

sudo inxi -SMmCGD

Как говорится, век живи - век учись! Спасибо, работает просто шикарно! :D

А bash это ужасно, просто ужасно. Но иногда интересно, и в однострочниках бывает очень удобно. Автор просто герой - 'inxi' это bash-скрипт размером в 16337 строк, очень красиво написанный (на беглый взгляд, да и насколько это, вообще, возможно для bash). )))


Баш не то чтобы ужасен, но читать его через несколько месяцев конечно сложнее, чем те же скрипты на питоне, но ваш костыль шедевр =))


 

Member
Статус: Не в сети
Регистрация: 01.10.2012
xshram писал(а):
Баш не то чтобы ужасен, но читать его через несколько месяцев конечно сложнее, чем те же скрипты на питоне

Да что там питон... На моём любимом Perl-е с его "эзотерическим" синтаксисом при условии хорошего знания языка можно легко писать красивый и современный объектно-ориентированный код. Да и не ОО-код можно писать красиво и читабельно. А Bash, сколько не копаю, могу воспринимать только как средство для мелких скриптов до 100-150 строк разряда "написал, чтобы запустить и забыть". Как-то довелось писать на нём систему порядка 10 килострок - старался, как мог, но да, через уже несколько месяцев на это было больно смотреть. :)

Цитата:
но ваш костыль шедевр =))

Спасибо, иногда появляется желание как-нибудь извратиться, ничего не могу с собой поделать )))


 

Member
Статус: Не в сети
Регистрация: 25.08.2006
Откуда: родина ильича
Juma84 писал(а):
sudo inxi -SMmCGD

inxi -F


 

Member
Статус: Не в сети
Регистрация: 21.09.2011
Откуда: Сызрань
Фото: 5
Пузо писал(а):
inxi -F

А теперь сравни вывод этих команд.


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 7 
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  



Лаборатория














Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan