Script (sys2wiki.sh) um Hardware Infos unter linux in DokuWiki kompatible format auszulesen.
#!/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 ^processor | 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` elif [ -e /etc/slackware-version ]; then OS=`< /etc/slackware-version` 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 "^ Bus Address ^ Device Class ^ Details ^" /sbin/lspci |sed 's/\([0-9]\{2\}:[0-9a-z]\{2\}.[0-9]\)\([a-zA-Z0-9() ]\+\):\(.*\)$/| \1 | \2 | \3 |/g' 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
Hardware Infos unter AIX (getestet unter AIX 5.1)
#!/bin/ksh #make sure tools work as expected LANG=C #this specifies which Headline level is used HL='====' #CPU CPU_NAME=$(/usr/sbin/lsdev -C | grep Available | grep -i proc | awk '{print $1}') CPU=`/usr/sbin/lsattr -l $CPU_NAME -E | grep type | awk '{print $2}'` #MHz MHz=`/usr/sbin/lsattr -l $CPU_NAME -E | grep frequency | awk '{print $2/1000000}'` CPUCOUNT=`/usr/sbin/lsdev -C | grep Available | grep -i proc | awk '{print $1}' | wc -l` #RAM MEM_NAME=$(/usr/sbin/lsdev -C | grep Available | grep -i mem | awk '{print $1}') RAM=`/usr/sbin/lsattr -l $MEM_NAME -E | grep Total | awk '{print $2}'` # SWAP SWAP=0 for i in $(/usr/sbin/lsvg -o) do if lsvg -l $i | grep paging 2>&1 1>/dev/null then PAGEDEV=$(lsvg -l $i | grep paging | awk '{print $1}') PP_SIZE=$(lslv $PAGEDEV | grep "PP SIZE" | awk '{print $6}') LP_COUNT=$(lslv $PAGEDEV | grep "^LPs" | awk '{print $2}') let SWAP=$SWAP+$PP_SIZE*$LP_COUNT fi done OS=`printf "$(/usr/bin/uname) $(/usr/bin/oslevel)"` # erledigt ML=`/usr/bin/oslevel -r | awk -F- '{print $2}'` HOSTNAME=`/usr/bin/hostname` echo " $HL General $HL ^ Hostname | $HOSTNAME | ^ CPU | $CPU | ^ MHz | $MHz | ^ # CPU | $CPUCOUNT | ^ RAM | $RAM | ^ Swap | $SWAP | ^ OS | $OS | ^ Maintenance-Level | $ML | " echo "$HL Network $HL\n" for DEV in `/usr/sbin/ifconfig -a | egrep -v "^lo|inet|ether|sendspace" | awk '{print $1}' | sed -e 's/://' | uniq` do IP=`/usr/sbin/ifconfig $DEV | grep inet | awk '{print $2}'` echo "^ $DEV | $IP |" done echo echo "$HL Devices $HL\n" echo "^ Name ^ Slot ^ Description ^" /usr/sbin/lsdev -C -S Available -F "name location description" |sort | sed -e '/^[ ]*$/d' | awk -F' \{2,\}' '{print "| " $1 " | " $2 " | " $3 " |"}' echo echo "$HL Volumegroups & Filesystems $HL\n" echo "^ Volumegroup ^ Filesystem ^ Size (in KB) ^ Mountpoint ^" for i in $(/usr/sbin/lsvg -o) do for j in $(lsvg -l $i | egrep -v "$i:|TYPE|closed|paging|jfslog|jfs2log" | awk '{print $1}') do echo "| $i $(df -k | grep "$j " | awk '{print "| " $1 " | " $2 " | " $NF " |"}')" done done echo
Hardware Infos unter Solaris (getestet unter Solaris 9/10 SPARC)
#!/bin/bash #make sure tools work as expected LANG=C #this specifies which Headline level is used HL='====' CPU=`/usr/bin/kstat cpu_info | grep implementation | sed -e 's/\([^ *]implementation[ *]\)//g' | sed -e 's/[ ]\{2,\}//g' | sed -n '1p'` # erledigt MHz=`/usr/bin/kstat cpu_info | grep clock_MHz | sed -e 's/\([^ *]clock_MHz[ *]\)//g' | sed -e 's/[ ]\{2,\}//g' | sed -n '1p'` # erledigt CPUCOUNT=`/usr/bin/kstat cpu_info | grep implementation | wc -l` # erledigt RAM=`/usr/sbin/prtconf | grep Memory | awk '{print $3*1024}'` # erledigt SWAP=`SWAP=0; for i in $(/usr/sbin/swap -l | egrep -v swapfile | awk '{print $5}'); do let SWAP=$SWAP+$i; done; echo $SWAP` # erledigt OS=`uname -sr` # erledigt HOSTNAME=`/usr/bin/hostname` echo " $HL General $HL ^ Hostname | $HOSTNAME | ^ CPU | $CPU | ^ MHz | $MHz | ^ # CPU | $CPUCOUNT | ^ RAM | $RAM | ^ Swap | $SWAP | ^ OS | $OS | " echo -e "$HL Network $HL\n" for DEV in `/usr/sbin/ifconfig -a | egrep -v "^lo|inet|ether" | awk '{print $1}' | sed -e 's/://' | uniq` do IP=`/sbin/ifconfig $DEV | grep inet | awk '{print $2}'` echo "^ $DEV | $IP |" done echo echo -e "$HL Bus $HL\n" echo "^ Board ^ Bus-Type ^ MHz ^ Slot ^ Name ^ Model ^" /usr/sbin/prtdiag | sed -n -e '/^ Bus/,/======/ p' | egrep -v "Freq|---|System|===|Slot" | sed -e '/^[ ]*$/d' | awk -F' \{2,\}' '{print "| " $1 " | " $2 " | " $3 " | " $4 " | " $5 " | " $NF " |"}' echo echo -e "$HL Filesystems $HL\n" /usr/bin/df -h | egrep -v "/proc|mnttab|/dev/fd|swap|/devices|ctfs|objfs" | awk '{print "| " $1 " | " $2 " | " $6 " |"}' echo
Kann man z.B wie folgt aufrufen
fw-failover-2 tmp # ./sys2wiki.sh > fw-failover-2.txt
und das ganze sieht dan so aus
Hostname | fw-failover-2.mustermann.lan |
---|---|
CPU | Intel(R) Pentium(R) 4 CPU 2.80GHz |
MHz | 2800.662 |
# CPU | 1 |
RAM | 510068 kB |
Swap | 1000312 kB |
System | Linux 2.6.14-hardened-r5 |
OS | Gentoo Base System version 1.6.14 |
eth0 | 192.168.10.241 |
---|---|
eth0:0 | 192.168.10.4 |
eth1 | 212.xx.xxx.xxx |
eth2 | 192.168.100.1 |
eth3 | 212.xx.xxx.xx |
ippp0 | 192.168.200.100 |
ippp1 | 192.168.0.153 |
ippp2 | 192.168.5.100 |
ipsec0 | 212.xx.xxx.xx |
ipsec1 | 212.xx.xxx.xxx |
Bus Address | Device Class | Details |
---|---|---|
00:00.0 | Host bridge | Intel Corporation 82845G/GL[Brookdale-G]/GE/PE DRAM Controller/Host-Hub Interface (rev 03) |
00:01.0 | PCI bridge | Intel Corporation 82845G/GL[Brookdale-G]/GE/PE Host-to-AGP Bridge (rev 03) |
00:1d.0 | USB Controller | Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 02) |
00:1d.1 | USB Controller | Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 02) |
00:1d.2 | USB Controller | Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 02) |
00:1d.7 | USB Controller | Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 02) |
00:1e.0 | PCI bridge | Intel Corporation 82801 PCI Bridge (rev 82) |
00:1f.0 | ISA bridge | Intel Corporation 82801DB/DBL (ICH4/ICH4-L) LPC Interface Bridge (rev 02) |
00:1f.1 | IDE interface | Intel Corporation 82801DB (ICH4) IDE Controller (rev 02) |
00:1f.3 | SMBus | Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 02) |
01:00.0 | VGA compatible controller | nVidia Corporation NV11 [GeForce2 MX/MX 400] (rev b2) |
02:05.0 | Ethernet controller | Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10) |
02:09.0 | Ethernet controller | 3Com Corporation 3c905C-TX/TX-M [Tornado] (rev 78) |
02:0b.0 | Ethernet controller | 3Com Corporation 3c905C-TX/TX-M [Tornado] (rev 78) |
02:0c.0 | Ethernet controller | 3Com Corporation 3c905C-TX/TX-M [Tornado] (rev 78) |
02:0d.0 | Ethernet controller | 3Com Corporation 3c905C-TX/TX-M [Tornado] (rev 78) |
02:0e.0 | Network controller | AVM Audiovisuelles MKTG & Computer System GmbH Fritz!PCI v2.0 ISDN (rev 02) |
Filesystem | Type | Size | Mounted |
/dev/md/1 | reiserfs | 1.9G | / |
/dev/md/0 | reiserfs | 96M | /boot |
/dev/md/2 | reiserfs | 2.4G | /usr |
/dev/md/4 | reiserfs | 3.8G | /var |
/dev/drbd0 | reiserfs | 9.6G | /shared |
/dev/hda | WDC WD400BB-00JHA0 | 37 GB |
/dev/hdc | ST320413A | 18 GB |
/dev/hdd | TSSTcorpDVD-ROM SH-D162C | 0 GB |
Originalscript zu finden unter http://wiki.splitbrain.org/sys2wiki.sh
Denn “lspci” ausgabe abschnitt habe ich bischen angepasst.
Die Ausgabe für den Bereich AIX & Solaris sieht entsprechend der unterschiedlichen Systemarchitektur und Betriebssystemmittel anders aus als der Linux-Bereich. Der Aufruf und die Verarbeitung funktioniert aber analog.