====== sys2wiki.sh ====== Script to output some hardware info under linux in a [[wiki:DokuWiki]] compatible format. I added MHz and delete the blank in the CPU variable. #!/bin/bash #make sure tools work as expected LANG=C #this specifies which Headline level is used HL='====' CPU=`cat /proc/cpuinfo | grep 'model name' | awk -F\: '{print $2}'|uniq|sed -e 's/ //'` MHz=`cat /proc/cpuinfo | grep 'cpu MHz' | awk -F\: '{print $2}'|uniq|sed -e 's/ //'` CPUCOUNT=`cat /proc/cpuinfo|grep "physical id"|uniq|wc -l` RAM=`cat /proc/meminfo | grep MemTotal | awk -F\: '{print $2}' | awk -F\ '{print $1 " " $2}'` SWAP=`cat /proc/meminfo | grep SwapTotal | awk -F\: '{print $2}' | awk -F\ '{print $1 " " $2}'` SYSTEM=`uname -sr` HOSTNAME=`(hostname -f || hostname) 2>/dev/null` # look for known Distributions if [ -e /etc/debian_version ]; then OS="Debian `cat /etc/debian_version`" elif [ -e /etc/redhat-release ]; then OS=`cat /etc/redhat-release` elif [ -e /etc/SuSE-release ]; then OS=`cat /etc/SuSE-release |head -n1` elif [ -e /etc/gentoo-release ]; then OS=`< /etc/gentoo-release` else OS='unknown' fi echo " $HL General $HL ^ Hostname | $HOSTNAME | ^ CPU | $CPU | ^ MHz | $MHz | ^ # CPU | $CPUCOUNT | ^ RAM | $RAM | ^ Swap | $SWAP | ^ System | $SYSTEM | ^ OS | $OS | " echo -e "$HL Network $HL\n" for DEV in `/sbin/ifconfig -a |grep '^\w'|awk '!/lo/{print $1}'` do IP=`/sbin/ifconfig $DEV |awk -F\: '/inet / {print $2}'|awk '{print $1}'` echo "^ $DEV | $IP |" done echo echo -e "$HL PCI $HL\n" lspci |sed 's/^/ /' echo echo -e "$HL Filesystems $HL\n" df -hPT -x tmpfs | awk '{print "| " $1 " | " $2 " | " $3 " | " $7 " |"}' echo echo -e "$HL IDE devices $HL\n" for DEV in `ls -1d /proc/ide/hd* |sed 's/.*\///'` do MODEL=`cat /proc/ide/$DEV/model` if [ -e /proc/ide/$DEV/capacity ]; then SIZE=`cat /proc/ide/$DEV/capacity` SIZE=`expr $SIZE / 2097152` else if [ -e /sys/block/$DEV/size ]; then SIZE=`cat /sys/block/$DEV/size` SIZE=`expr $SIZE / 2097152` else SIZE='(unknown)' fi fi echo "| /dev/$DEV | $MODEL | $SIZE GB |" done if [ "$(ls -1d /sys/block/sd* 2> /dev/null)" ]; then echo -e "$HL SCSI devices $HL\n" for DEV in `ls -1d /sys/block/sd* |sed 's/.*\///'` do MODEL=`cat /sys/block/$DEV/device/model` SIZE=`cat /sys/block/$DEV/size` SIZE=`expr $SIZE / 2097152` echo "| /dev/$DEV | $MODEL | $SIZE GB |" done echo fi ---- Cool! I had forgotten you posted this. Here's a diff to add Slackware "detection" and format the lspci output: --- sys2wiki.sh.orig 2006-08-26 22:13:48.000000000 -0400 +++ sys2wiki.sh 2006-08-26 22:14:04.000000000 -0400 @@ -23,6 +23,8 @@ OS=`cat /etc/SuSE-release |head -n1` elif [ -e /etc/gentoo-release ]; then OS=`< /etc/gentoo-release` +elif [ -e /etc/slackware-version ]; then + OS=`< /etc/slackware-version` else OS='unknown' fi @@ -49,7 +51,8 @@ echo echo -e "$HL PCI $HL\n" -lspci |sed 's/^/ /' +echo "^ Bus Address ^ Device Class ^ Details ^" +lspci |sed 's/\([0-9a-f]\{2\}:[0-9a-f]\{2\}.[0-9a-f]\)\([a-zA-Z0-9 ]\+\):\(.*\)$/| \1 | \2 | \3 |/g' echo echo -e "$HL Filesystems $HL\n" --N1XIM -- fixing the sed script to accept hex numbers CPUKENELCOUNT=`cat /proc/cpuinfo|grep "processor"|uniq|wc -l` ..... ^ # CPUKENEL | $CPUKENELCOUNT | -- sinosmond -- add CPU KENEL COUNT ---- If you want to use sys2wiki.sh on a remote server and using a crontab, you might want to have a look at the [[wiki:tips:tofromdoku|Dokuwiki Command Line Utility]]