User Tools

Site Tools


sys2wiki.sh

sys2wiki.sh

Script to output some hardware info under linux in a 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 Dokuwiki Command Line Utility

sys2wiki.sh.txt · Last modified: 2007/12/20 03:44 by 211.161.7.147