|
From: Josh L. <ru...@us...> - 2006-02-11 02:34:37
|
Update of /cvsroot/acd/acd-2/bin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6091/bin Added Files: 00_linux_required 20_optional_linux_cpu 21_optional_linux_disks 22_optional_linux_network Log Message: initial info gathering scripts for linux added --- NEW FILE: 00_linux_required --- #!/bin/sh HOSTNAME=$(/bin/hostname) OSNAME="Linux" # get osinfo if [ -f /etc/redhat-release ] ; then S=$(cat /etc/redhat-release) if grep "Red Hat Enterprise" /etc/redhat-release ; then OSDISTRO=RHEL if grep "release 3" /etc/redhat-release ; then OSREL="3" elif grep "release 4" /etc/redhat-release ; then OSREL="4" else OSREL="-1" fi else OSDISTRO="Unknown Red Hat" fi OSPATCH=$(awk '{print $10}' /etc/redhat-release| sed 's/)//') fi echo " <required>" echo " <hostname>" echo " ${HOSTNAME}" echo " </hostname>" echo " <operatingsystem>" echo " <name>${OSNAME}</name>" echo " <distribution>${OSDISTRO}</distribution>" echo " <version>${OSREL}</version>" echo " <patchLevel>${OSPATCH}<patchLevel>" echo " </operatingsystem>" echo " </required>" --- NEW FILE: 20_optional_linux_cpu --- #!/usr/bin/env perl use strict; my $num_cpus=0; my $mhz; my $arch; my $model; open CPUINFO, "/proc/cpuinfo"; while(<CPUINFO>) { if( /processor/ ) { $num_cpus++; } elsif ( /cpu MHz/) { $_ =~ s/cpu MHz.*:\s*//g; $mhz=$_; } elsif (/model name/){ $_ =~ s/model name:\s*//g; if(m/Xeon/){ $model="Intel Xeon"; } elsif (m/Opteron/){ $model="AMD Opteron"; } } } chomp $mhz; $mhz=int $mhz; $arch=`uname -m`; chomp $arch; for(my $i=0;$i<$num_cpus;$i++){ print " <cpu>\n"; print " <architecture>$arch</architecture>\n"; print " <speed>$mhz</speed>\n"; print " <model>$model</model>\n"; print " </cpu>\n" } --- NEW FILE: 21_optional_linux_disks --- #!/usr/bin/env perl use strict; open(P,'</proc/partitions') or die "Cannot open /proc/partitions: $!"; while(<P>){ if(m/^major/i){ next; } elsif (m/^$/) { next; } elsif (m/^\s*[0-9]+\s*[0]/){ my $c=$_; $c =~ m/^\s*[0-9]+\s+[0]\s+([0-9]+)\s+(...)/; print " <disk_drive>\n"; print " <device>$2</device>\n"; print " <size>$1</size>\n"; print " </disk_drive>\n"; } } --- NEW FILE: 22_optional_linux_network --- #!/usr/bin/env perl use strict; use Data::Dumper; my @ifconfig; my $ifname; my $current_line; use vars qw/$hw_address $inet_addr $netmask $mtu $broadcast/; my $i; my $current_interface; my @interfaces; @ifconfig=`/sbin/ifconfig`; for ($i=0; $i<$#ifconfig; $i++) { $current_line=$ifconfig[$i]; chomp($current_line); if($current_line =~ m/^[0-9a-zA-Z]/){ if($current_interface->{ifname}){ push(@interfaces,$current_interface); } #print_interface($current_interface); undef($current_interface); $ifname = $current_line; $ifname =~ s/^([0-9A-z:]+).*/$1/; $current_interface->{ifname}=$ifname; if($current_line =~ m/HWaddr/){ $hw_address = $current_line; $hw_address =~ s/.*HWaddr ([a-fA-F0-9:]+)\s*/$1/; $current_interface->{hw_address}=$hw_address; } } elsif ($current_line =~ m/\s*inet addr/){ $current_line =~ m/inet addr:([0-9.]+).*Bcast:([0-9.]+).*Mask:(([0-9.]+))/; $current_interface->{inet_addr}=$1; $current_interface->{broadcast}=$2; $current_interface->{netmask}=$3; } elsif ($current_line =~ m/MTU/){ $mtu=$current_line; $mtu =~ s/.*MTU:([0-9]+).*/$1/; $current_interface->{mtu}=$mtu; } } push(@interfaces, $current_interface); foreach my $a (@interfaces){ print_interface($a); } sub print_interface{ my $int=shift; if($int->{ifname} eq "lo") { return; } print " <!-- interface ".$int->{ifname}." -->\n"; print " <network_interface>\n"; print " <device>".$int->{ifname}."</device>\n"; if($int->{inet_addr}){ print " <ip_address>".$int->{inet_addr}."</ip_address>\n"; } if($int->{netmask}){ print " <netmask>".$int->{netmask}."</netmask>\n"; } if($int->{hw_address}){ print " <mac>".$int->{hw_address}."</mac>\n"; } if($int->{mtu}){ print " <mtu>".$int->{mtu}."</mtu>\n"; } if($int->{broadcast}){ print " <broadcast>".$int->{broadcast}."</broadcast>\n"; } print " </network_interface>\n"; } |