Tips en Trucs 2010

Systeemgegevens opvragen

Linux heeft zoveel prachtige hulpmiddelen. Hun grootste troef is dat je deze hulpmiddelen kan combineren om nieuwe hulpmiddelen te maken. Deze tip handelt over het hulpmiddel sup die je nuttige informatie verschaft over het Linux-systeem waarop je bent ingelogd. Na het openen van diverse terminal vensters en het opstarten van verschillende screen sessies, is het gemakkelijk om te verdwalen in het labyrint van geopende verbindingen en sessies. Het hulpmiddel sup maakt van het labyrint een prachtig overzicht, waardoor je snel terug de touwtjes in handen kunt nemen.

Het hulpmiddel sup is eigenlijk niets anders dan een script, waarin hulpmiddelen om systeemgegevens op te vragen gecombineerd worden met hulpmiddelen om bepaalde informatie uit teksten af te zonderen. Dit script kan eveneens dienen als basis voor andere scripts. Het script in werking:
dany@linux-gjso:~> sh sup
<=== SYSTEM ===>
  Distro info:  Welcome to openSUSE 11.2 "Emerald" - Kernel \r (\l).
  Kernel:       Linux linux-gjso 2.6.31.12-0.2-desktop #1 SMP PREEMPT 2010-03-16 21:25:39 +0100 x86_64 x86_64 x86_64 GNU/Linux
  Uptime:       14:24  up   0:38,  3 gebruikers,  gemiddelde belasting: 0,07, 0,08, 0,09
  Memory:       Total: 8000Mb   Used: 1188Mb    Free: 6812Mb
  Swap:         Total: 2047Mb   Used: 0Mb       Free: 2047Mb
  Architecture: x86_64
  Processor:    0 : Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz
  Processor:    1 : Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz
  Processor:    2 : Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz
  Processor:    3 : Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz
  Date:         vr apr 16 14:24:00 CEST 2010

<=== USER ===>
  User:         dany (uid:1000)
  Groups:       users video
  Working dir:  /home/dany
  Home dir:     /home/dany

<=== NETWORK ===>
  Hostname:     linux-gjso
  IP (lo):      127.0.0.1/8
  IP (lo):      127.0.0.2/8
  IP (eth0):    192.168.0.106/24
  IP (vmnet1):  172.16.67.1/24
  IP (vmnet8):  172.16.10.1/24
  Gateway:      192.168.0.1
  Name Server:  192.168.0.1
Het script:
#!/bin/bash

# ORIGINALLY WRITTEN BY SCOTT MORRIS (http://www.suseblog.com/) on 2008-05-28
# UPDATED AS SUGGESTED BY LONNIE OLSON on 2008-05-30

# COLLECT SOME INFO
SYSINFO=`cat /etc/issue | sort | uniq | awk '/[a-zA-Z]/{printf $1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9"\n"}'`
IFS=$'\n'
UPTIME=`uptime`
D_UP=${UPTIME:1}
MYGROUPS=`groups`
DATE=`date`
KERNEL=`uname -a`
#SYSINFO=`head -n 1 /etc/issue`
CPWD=`pwd`
ME=`whoami`

# OUTPUT THE DATA
#printf "  user:\t\t"$USER" (uid:"$UID")\n"
printf "<=== SYSTEM ===>\n"
echo "  Distro info:	"$SYSINFO""
printf "  Kernel:\t"$KERNEL"\n"
printf "  Uptime:\t"$D_UP"\n"
free -mot | awk '
/Mem/{print "  Memory:\tTotal: " $2 "Mb\tUsed: " $3 "Mb\tFree: " $4 "Mb"}
/Swap/{print "  Swap:\t\tTotal: " $2 "Mb\tUsed: " $3 "Mb\tFree: " $4 "Mb"}'
printf "  Architecture:\t"$CPU"\n"
cat /proc/cpuinfo | grep "model name\|processor" | awk '
/processor/{printf "  Processor:\t" $3 " : " }
/model\ name/{
i=4
while(i<=NF){
	printf $i
	if(i<NF){
		printf " "
	}
	i++
}
printf "\n"
}'
printf "  Date:\t\t"$DATE"\n"
printf "\n<=== USER ===>\n"
printf "  User:\t\t"$ME" (uid:"$UID")\n"
printf "  Groups:\t"$MYGROUPS"\n"
printf "  Working dir:\t"$CPWD"\n"
printf "  Home dir:\t"$HOME"\n"
printf "\n<=== NETWORK ===>\n"
printf "  Hostname:\t"$HOSTNAME"\n"
ip -o addr | awk '/inet /{print "  IP (" $2 "):\t" $4}'
/sbin/route -n | awk '/^0.0.0.0/{ printf "  Gateway:\t"$2"\n" }'
cat /etc/resolv.conf | awk '/^nameserver/{ printf "  Name Server:\t" $2 "\n"}'
#/sbin/lspci | grep "Audio device:\|VGA compatible" | awk '
#/Audio device/{printf "  Audio:\t"
#i=4
#while(i<=NF){
#        printf $i
#        if(i<NF){
#                printf " "
#        }
#        i++
#}
#printf "\n"
#}
#/VGA compatible/{printf "  Graphics:\t"
#i=5
#while(i<=NF){
#        printf $i
#        if(i<NF){
#                printf " "
#        }
#        i++
#}
#printf "\n"
#}'