2026-10-23 14:15:26 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
|
|
## 20260624-113809
|
|
|
|
|
|
|
|
|
|
## SYSTEM PROFILE GENERATOR
|
|
|
|
|
## deps:
|
|
|
|
|
#sudo apt install grep original-awk mawk gawk sed lm-sensors xsensors lshw inxi hardinfo memtester 7zip hashcat qrencode libreoffice
|
|
|
|
|
|
|
|
|
|
sudo clear
|
|
|
|
|
ts=$(date +%Y-%m-%d-%T)
|
|
|
|
|
echo "================================================================================"
|
|
|
|
|
echo " SYSTEM PROFILE GENERATOR DATE: ${ts}"
|
|
|
|
|
echo "================================================================================"
|
|
|
|
|
## INITIAL DATA COLLECTION
|
|
|
|
|
sudo echo 1 > /sys/bus/pci/rescan
|
|
|
|
|
#dmi=$(sudo grep -r "" /sys/class/dmi/id/[bcp]*)
|
|
|
|
|
sn=$(sudo cat /sys/class/dmi/id/product_serial)
|
2026-10-24 05:29:17 +00:00
|
|
|
mfg=$(sudo cat /sys/class/dmi/id/board_vendor)
|
|
|
|
|
mn=$(sudo cat /sys/class/dmi/id/product_name)
|
2026-10-23 14:15:26 +00:00
|
|
|
uid=$(sudo cat /sys/class/dmi/id/product_uuid)
|
|
|
|
|
tag=$(sudo cat /sys/class/dmi/id/chassis_asset_tag)
|
|
|
|
|
cpu=$(sudo lshw -short | grep 'processor' | awk -F 'processor' '{print $2}' | sed 's/^[ \t]*//')
|
2026-10-24 05:29:17 +00:00
|
|
|
#gpu=$(sudo lshw -short | grep -i 'display' | awk -F 'display' '{print $2}' | sed 's/^[ \t]*//')
|
2026-10-24 21:53:58 +00:00
|
|
|
gpu=$(sudo inxi -Gxxxa | grep -i 'device-1: ' | grep -i 'vendor: ' | awk -F': ' '{print $2}' | sed s/vendor//g | sed 's/^[ \t]*//')
|
|
|
|
|
gpuven=$(sudo inxi -Gxxxa | grep -i 'device-1:' | grep -i 'vendor:' | awk -F'vendor:' '{print $2}' | awk -F' driver:' '{print $1}' | sed 's/^[ \t]*//')
|
|
|
|
|
gpu2=$(sudo inxi -Gxxxa | grep -i 'device-2: ' | grep -i 'vendor: ' | awk -F': ' '{print $2}' | sed s/vendor//g | sed 's/^[ \t]*//')
|
|
|
|
|
gpuven2=$(sudo inxi -Gxxxa | grep -i 'device-2:' | grep -i 'vendor:' | awk -F'vendor:' '{print $2}' | awk -F' driver:' '{print $1}' | sed 's/^[ \t]*//')
|
|
|
|
|
vram=$(sudo inxi -Gxxxa | grep -i 'Memory:' | awk -F'memory:' '{print $2}' | awk -F' ' '{print $1,$2}' | sed s/GiB/GB/g)
|
2026-10-24 22:00:18 +00:00
|
|
|
ram=$(sudo lshw -short | grep -i 'system memory' | awk -F ' ' '{print $3}' | sed 's/^[ \t]*//' | sed s/GiB/' GB'/g)
|
2026-10-24 08:50:44 +00:00
|
|
|
drv=$(sudo lsblk -o NAME,TYPE,VENDOR,MODEL,SIZE,SERIAL -e 7 | grep -v '^[[:space:]]*MODEL' | grep '[^ ]')
|
2026-10-23 14:15:26 +00:00
|
|
|
sudo rm -rf ./.tmp/"$sn".log
|
|
|
|
|
sudo rm -rf ./.tmp/
|
|
|
|
|
mkdir ./.tmp/
|
|
|
|
|
sudo grep -r "" /sys/class/dmi/id/[bcp]* | tee ./.tmp/"$sn"-dmi
|
|
|
|
|
sudo lshw | tee -a ./.tmp/"$sn"-lshw
|
|
|
|
|
sudo inxi --dmidecode -ACDEGJMmNnRsxxxa | tee ./.tmp/"$sn"-inxi
|
|
|
|
|
sudo inxi -Bxxxa | tee -a ./.tmp/"$sn"-inxi
|
|
|
|
|
#sudo memtester 64 1 | tee ./.tmp/"$sn"-memtester
|
|
|
|
|
#sudo hardinfo2 -r | tee ./.tmp/"$sn"-hardinfo
|
|
|
|
|
clear
|
2026-10-24 05:29:17 +00:00
|
|
|
## REPORT START
|
2026-10-23 14:15:26 +00:00
|
|
|
echo "================================================================================" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
echo " SYSTEM PROFILE S/N: $sn DATE: ${ts}" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
echo "================================================================================" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
echo " SERIAL: $sn" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
echo "--------------------------------------------------------------------------------" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
echo " MODEL: $mn" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
echo "--------------------------------------------------------------------------------" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
echo " MFG: $mfg" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
echo "--------------------------------------------------------------------------------" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
echo " UUID: $uid" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
echo "--------------------------------------------------------------------------------" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
echo " TAG: $tag" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
echo "--------------------------------------------------------------------------------" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
echo " CPU: $cpu" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
echo "--------------------------------------------------------------------------------" | tee -a ./.tmp/"$sn".log
|
2026-10-24 21:53:58 +00:00
|
|
|
echo " RAM: $ram" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
echo "--------------------------------------------------------------------------------" | tee -a ./.tmp/"$sn".log
|
2026-10-24 05:29:17 +00:00
|
|
|
echo " GPU: $gpuven $gpu" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
echo "--------------------------------------------------------------------------------" | tee -a ./.tmp/"$sn".log
|
2026-10-24 21:53:58 +00:00
|
|
|
echo " GPU2: $gpuven2 $gpu2" | tee -a ./.tmp/"$sn".log
|
2026-10-24 21:49:46 +00:00
|
|
|
echo "--------------------------------------------------------------------------------" | tee -a ./.tmp/"$sn".log
|
2026-10-24 21:53:58 +00:00
|
|
|
echo " VRAM: $vram" | tee -a ./.tmp/"$sn".log
|
2026-10-23 14:15:26 +00:00
|
|
|
echo "================================================================================" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
echo " DRIVES: " | tee -a ./.tmp/"$sn".log
|
|
|
|
|
echo "--------------------------------------------------------------------------------" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
echo "$drv" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
echo "================================================================================" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
echo " SYSTEM DETAIL:" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
echo "--------------------------------------------------------------------------------" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
grep '' ./.tmp/"$sn"-inxi | tee -a ./.tmp/"$sn".log
|
|
|
|
|
#echo "--------------------------------------------------------------------------------" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
#sudo inxi -Bxxxa | tee -a ./.tmp/"$sn".log
|
|
|
|
|
echo | tee -a ./.tmp/"$sn".log
|
|
|
|
|
echo "================================================================================" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
echo " DRIVE DETAIL:" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
echo "--------------------------------------------------------------------------------" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
sudo hds | tee -a ./.tmp/"$sn".log
|
|
|
|
|
grep -v 'Hard Disk Se' ./.tmp/"$sn".log > temp && mv temp ./.tmp/"$sn".log
|
|
|
|
|
grep -v 'Start with' ./.tmp/"$sn".log > temp && mv temp ./.tmp/"$sn".log
|
|
|
|
|
grep -v 'Examining hard' ./.tmp/"$sn".log > temp && mv temp ./.tmp/"$sn".log
|
|
|
|
|
grep -v 'More info' ./.tmp/"$sn".log > temp && mv temp ./.tmp/"$sn".log
|
|
|
|
|
grep -v 'http://www.hdse' ./.tmp/"$sn".log > temp && mv temp ./.tmp/"$sn".log
|
2026-10-24 05:29:17 +00:00
|
|
|
echo "--------------------------------------------------------------------------------"
|
2026-10-23 14:15:26 +00:00
|
|
|
echo " PRESS ENTER TO BENCHMARK, R FOR REPORT, Q TO RELOAD, OR E TO EXIT"
|
|
|
|
|
echo "================================================================================" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
read -r -n 1 -s key
|
|
|
|
|
if [ "$key" = "R" ] || [ "$key" = "r" ]; then
|
|
|
|
|
#echo "================================================================================" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
## NOTES
|
|
|
|
|
echo | tee -a ./.tmp/"$sn".log
|
|
|
|
|
echo " ENTER NOTES TO INCLUDE:"
|
|
|
|
|
echo " NOTES:" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
read -r note
|
|
|
|
|
echo " $note" >> ./.tmp/"$sn".log
|
|
|
|
|
echo | tee -a ./.tmp/"$sn".log
|
|
|
|
|
echo " TECH:" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
read -r tech
|
|
|
|
|
echo " $tech" >> ./.tmp/"$sn".log
|
|
|
|
|
echo | tee -a ./.tmp/"$sn".log
|
|
|
|
|
echo "================================================================================" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
## REPORT END
|
|
|
|
|
echo " PRESS ENTER TO PRINT REPORT OR CTRL-C TO EXIT"
|
|
|
|
|
read -r -n1
|
|
|
|
|
echo "================================================================================"
|
|
|
|
|
echo " GENERATING REPORT FILE: $sn.pdf..."
|
2026-10-24 05:29:17 +00:00
|
|
|
echo "--------------------------------------------------------------------------------"
|
2026-10-23 14:15:26 +00:00
|
|
|
#mkdir ./rp/
|
|
|
|
|
soffice --headless --convert-to pdf --outdir ./ ./.tmp/"$sn".log
|
|
|
|
|
rm ./.tmp/"$sn".log
|
|
|
|
|
sudo rm -rf ./.tmp/
|
|
|
|
|
qrencode -l H -o ./"$sn".png "$sn"
|
|
|
|
|
open ./"$sn".pdf; open ./"$sn".png
|
|
|
|
|
qrencode -t ANSI -o - "$sn" -s 1 -m 1 -M
|
|
|
|
|
echo "================================================================================"
|
|
|
|
|
read -r -n1
|
|
|
|
|
exit
|
|
|
|
|
else
|
|
|
|
|
if [ "$key" = "q" ] || [ "$key" = "Q" ]; then
|
|
|
|
|
exec bash "$0" "$@"
|
|
|
|
|
else
|
|
|
|
|
if [ "$key" = "e" ] || [ "$key" = "E" ]; then
|
|
|
|
|
exit
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
# BENCHMARKS
|
|
|
|
|
echo " BENCHMARK SCORES:" >> ./.tmp/"$sn".log
|
|
|
|
|
echo " BENCHMARKING..."
|
|
|
|
|
echo "--------------------------------------------------------------------------------" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
echo " RUNNING 7-ZIP BENCHMARK..."
|
|
|
|
|
#echo "--------------------------------------------------------------------------------"
|
|
|
|
|
#echo " 7-ZIP: " >> ./.tmp/"$sn".log
|
|
|
|
|
szs=$(7z b | grep 'Tot:' | awk '{print $4}' | sed '$ s/$/ MIPS/'); echo " 7-ZIP SCORE: $szs (CPU)" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
#echo " 7-ZIP SCORE:"; awk '/7-ZIP/ {getline; print}' ./.tmp/"$sn".log
|
|
|
|
|
echo "--------------------------------------------------------------------------------" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
echo " RUNNING HASHCAT BENCHMARK..."
|
|
|
|
|
#echo "--------------------------------------------------------------------------------"
|
|
|
|
|
#echo " HASHCAT: " >> ./.tmp/"$sn".log
|
|
|
|
|
hcs=$(hashcat -bm 0 -D 1,2,3 | grep 'Speed.#1.........:' | awk '{print $2,$3}'); echo " HASHCAT SCORE: $hcs (CPU/GPU)" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
#echo " HASHCAT SCORE:"; awk '/HASHCAT/ {getline; print}' ./.tmp/"$sn".log
|
|
|
|
|
echo "--------------------------------------------------------------------------------" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
echo " RUNNING GLMARK2 BENCHMARK..."
|
|
|
|
|
#echo "--------------------------------------------------------------------------------"
|
|
|
|
|
gms=$(glmark2 --annotate | grep -i 'score:' | awk -F: '{print $2}'); echo " GLMARK2 SCORE:"$gms"FPS (GPU)" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
#echo " RUNNING OTHER BENCHMARKS..."
|
|
|
|
|
#echo "--------------------------------------------------------------------------------"
|
|
|
|
|
#hardinfo2 -r > ./.tmp/"$sn"-hardinfo
|
|
|
|
|
#echo "--------------------------------------------------------------------------------"
|
|
|
|
|
#echo " OTHER BENCHMARK SCORES: " | tee -a ./.tmp/"$sn".log
|
|
|
|
|
#echo "--------------------------------------------------------------------------------" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
#grep -A 1 'CPU Blowfish-' ./.tmp/"$sn"-hardinfo | tee -a ./.tmp/"$sn".log
|
|
|
|
|
#echo | tee -a ./.tmp/"$sn".log
|
|
|
|
|
#grep -A 1 'CPU CryptoHash-' ./.tmp/"$sn"-hardinfo | tee -a ./.tmp/"$sn".log
|
|
|
|
|
#echo | tee -a ./.tmp/"$sn".log
|
|
|
|
|
#grep -A 1 'CPU Fibonacci-' ./.tmp/"$sn"-hardinfo | tee -a ./.tmp/"$sn".log
|
|
|
|
|
#echo | tee -a ./.tmp/"$sn".log
|
|
|
|
|
#grep -A 1 'CPU N-Queens-' ./.tmp/"$sn"-hardinfo | tee -a ./.tmp/"$sn".log
|
|
|
|
|
#echo | tee -a ./.tmp/"$sn".log
|
|
|
|
|
#grep -A 1 'CPU Zlib-' ./.tmp/"$sn"-hardinfo | tee -a ./.tmp/"$sn".log
|
|
|
|
|
#echo | tee -a ./.tmp/"$sn".log
|
|
|
|
|
#grep -A 1 'FPU FFT-' ./.tmp/"$sn"-hardinfo | tee -a ./.tmp/"$sn".log
|
|
|
|
|
#echo | tee -a ./.tmp/"$sn".log
|
|
|
|
|
#grep -A 1 'FPU Raytracing-' ./.tmp/"$sn"-hardinfo | tee -a ./.tmp/"$sn".log
|
|
|
|
|
#echo | tee -a ./.tmp/"$sn".log
|
|
|
|
|
## TESTS
|
|
|
|
|
#echo "================================================================================" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
#echo " TESTS:"
|
|
|
|
|
#echo "--------------------------------------------------------------------------------" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
#echo " MEMORY:"
|
|
|
|
|
#sudo memtester 64 1 | tee -a ./.tmp/"$sn".log ## CAUTION - LOG SPAM
|
|
|
|
|
echo "================================================================================" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
## NOTES
|
|
|
|
|
echo | tee -a ./.tmp/"$sn".log
|
|
|
|
|
echo " ENTER NOTES TO INCLUDE:"
|
|
|
|
|
echo " NOTES:" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
read -r note
|
|
|
|
|
echo " $note" >> ./.tmp/"$sn".log
|
|
|
|
|
echo | tee -a ./.tmp/"$sn".log
|
|
|
|
|
echo " TECH:" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
read -r tech
|
|
|
|
|
echo " $tech" >> ./.tmp/"$sn".log
|
|
|
|
|
echo | tee -a ./.tmp/"$sn".log
|
|
|
|
|
echo "================================================================================" | tee -a ./.tmp/"$sn".log
|
|
|
|
|
## REPORT END
|
|
|
|
|
echo " PRESS ENTER TO PRINT REPORT OR CTRL-C TO EXIT"
|
|
|
|
|
read -r -n1
|
|
|
|
|
echo "================================================================================"
|
|
|
|
|
echo " GENERATING REPORT FILE: $sn.pdf..."
|
2026-10-24 05:29:17 +00:00
|
|
|
echo "--------------------------------------------------------------------------------"
|
2026-10-23 14:15:26 +00:00
|
|
|
#mkdir ./rp/
|
|
|
|
|
soffice --headless --convert-to pdf --outdir ./ ./.tmp/"$sn".log
|
|
|
|
|
rm ./.tmp/"$sn".log
|
|
|
|
|
sudo rm -rf ./.tmp/
|
|
|
|
|
qrencode -l H -o ./"$sn".png "$sn"
|
|
|
|
|
open ./"$sn".pdf; open ./"$sn".png
|
|
|
|
|
qrencode -t ANSI -o - "$sn" -s 1 -m 1 -M
|
|
|
|
|
echo "================================================================================"
|
|
|
|
|
read -r -n1
|
|
|
|
|
|