#!/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) mfg=$(sudo cat /sys/class/dmi/id/board_vendor) mn=$(sudo cat /sys/class/dmi/id/product_name) 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]*//') #gpu=$(sudo lshw -short | grep -i 'display' | awk -F 'display' '{print $2}' | sed 's/^[ \t]*//') 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) ram=$(sudo lshw -short | grep -i 'system memory' | awk -F ' ' '{print $3}' | sed 's/^[ \t]*//' | sed s/GiB/' GB'/g) drv=$(sudo lsblk -o NAME,TYPE,VENDOR,MODEL,SIZE,SERIAL -e 7 | grep -v '^[[:space:]]*MODEL' | grep '[^ ]') 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 ## REPORT START 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 echo " RAM: $ram" | tee -a ./.tmp/"$sn".log echo "--------------------------------------------------------------------------------" | tee -a ./.tmp/"$sn".log echo " GPU: $gpuven $gpu" | tee -a ./.tmp/"$sn".log echo "--------------------------------------------------------------------------------" | tee -a ./.tmp/"$sn".log echo " GPU2: $gpuven2 $gpu2" | tee -a ./.tmp/"$sn".log echo "--------------------------------------------------------------------------------" | tee -a ./.tmp/"$sn".log echo " VRAM: $vram" | tee -a ./.tmp/"$sn".log 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 echo "--------------------------------------------------------------------------------" 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..." echo "--------------------------------------------------------------------------------" #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..." echo "--------------------------------------------------------------------------------" #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