(BigFan)! Napisano Styczeń 19, 2007 Zgłoszenie Share Napisano Styczeń 19, 2007 cześć, napisałem jakiś czas temu skrypcik do wyłuskiwania informacji o komputerze #!/bin/ksh Prg=`basename $0` Usage="Usage: $Prg <hostname>" DIR=`dirname $0`/.. Host=`hostname` format4="%-25s %-10s %-20s %-50s\n" # # FUNCTIONS # genconf() { mydate=`date +"%d/%m/%y %H:%M"` printf "$format4" $Host sys date "$mydate" # DNS domain: if [ -f "/etc/resolv.conf" ]; then var=`awk '{ var=tolower($1); if ( var == "domain" ) { printf "%s",$2 }}' /etc/resolv.conf` else var="unknown" fi printf "$format4" $Host sys dnsdomain "$var" # server model: # ??? DO zrobienia w C # system OS and kernel: os=`uname -o` kernel=`uname -r` kernelarch=`uname -i` printf "$format4" $Host sys osver "$os" printf "$format4" $Host sys kernel "$kernel" printf "$format4" $Host sys kernelarch "$kernelarch" # hardware architecture: mem=`free | awk '{ if ( $1 == "Mem:" ) { printf "%s %s",$2,kB }}'` printf "$format4" $Host sys mem "$mem" nbcpu=`cat /proc/cpuinfo | grep processor | wc -l` printf "$format4" $Host sys nbcpu "$nbcpu" model=`cat /proc/cpuinfo | grep "model name" | uniq | awk '{print $4$5}'` printf "$format4" $Host sys cpumodel "$model" freq=`cat /proc/cpuinfo | grep "cpu MHz" | uniq | awk '{print $4}' | awk -F"." '{print $1}'` printf "$format4" $Host sys cpufreq "$freq MHz" cache=`cat /proc/cpuinfo | grep "cache size" | uniq | awk '{print $4$5}'` printf "$format4" $Host sys cpucache "$cache" # SWAP swap=`free | awk '{ if ( $1 == "Swap:" ) { printf "%s",$2 }}'` printf "$format4" $Host sys swap "$swap kB" # MAC addresse(s): typeset -i i=0 bondcards="" # the network cards in bond networkcards=`ifconfig -a | grep -i HWaddr | awk '{ printf "%s ",$1 }'` for card in $networkcards do # # if bonding card # exist=`echo $card | grep "^eth"` if [ -z "$exist" ]; # bonding card then cardstmp=`grep eth /proc/net/bonding/$card | awk '{ printf "%s ",$NF }'` bondcards="${bondcards} $cardstmp" fi speed="not configured" duplex="not configured" MAC=`ifconfig $card | grep -i "HWaddr" | awk '{ printf "%s ",$NF }'` IP="" IP=`ifconfig $card | awk '{ if ( $1 == "inet" ) { printf "%s %s",$2,$NF }}'` if [ -z "$IP" ]; # network card is not configured then var1="not configured" var2=$var1 exist=`echo $bondcards | grep $card` if [ -f "/sbin/ethtool" -a -n "$exist" ]; then speed=`/sbin/ethtool $card | awk '{ if ( $1 == "Speed:" ) { print $NF }}'` duplex=`/sbin/ethtool $card | awk '{ if ( $1 == "Duplex:" ) { print $NF }}'` fi else var1=`echo $IP | awk '{ print $1 }' | awk -F":" '{ print $2 }'` var2=`echo $IP | awk '{ print $2 }' | awk -F":" '{ print $2 }'` if [ -f "/sbin/ethtool" ]; then speed=`/sbin/ethtool $card | awk '{ if ( $1 == "Speed:" ) { print $NF }}'` duplex=`/sbin/ethtool $card | awk '{ if ( $1 == "Duplex:" ) { print $NF }}'` fi fi printf "$format4" $Host sys lan$i "$card" printf "$format4" $Host sys mac$i "$MAC" printf "$format4" $Host sys speed$i "$speed" printf "$format4" $Host sys duplex$i "$duplex" printf "$format4" $Host sys ip$i "$var1" printf "$format4" $Host sys netmask$i "$var2" i=i+1 done # Disks list: typeset -i i=1 fdisk -l 2>/dev/null | grep Disk | while read myline do disk=`echo "$myline" | awk '{ printf "%s",$2 }' | tr -d ":"` size=`echo "$myline" | awk '{ printf "%s %s",$3,$4 }' | tr -d ","` printf "$format4" $Host sys disk$i "$disk $size" i=i+1 done # OS Installation date: # } # # MAIN # genconf exit 0 skrypcik działa, ale mam do Was dwa pytania: 1) - jak go mogę jeszcze bardziej rozbudowac? Chce aby skrypcik '#!/bin/ksh' pokazywał mi wszystko co jest tylko możliwe o danym komputerze - np. info o sprzęcie - o karcie sieciowej, o procku, o grafice itp oraz info o wszystkim co przydałoby się administratorowi sieci - podpowiedzcie mi co!! - aby ten administrator mógł stwierdzić z jakim ma kompem styczność i co może by zepsute w tym kompie (w moim skrypcie jest to np. adres MAC karty, czy adres IP hosta). Jak wyłuskac nazwę/identyfikator komputera? 2) - chcę zrobić w PHP skrypcik, ktory bedzie pobierał dane zwrócone przez ten skrypt '#!/bin/ksh' i aby te dane były wyświetlane nie statycznie, tylko w sposób dynamiczny. Mam na myśli takie rozwiązanie, że skrypt '#!/bin/ksh' bedzie pobierał dynamicznie (co jakiś czas, albo przez cały czas) te dane z kompa, a skrypt w PHP bedzie te dane dynamicznie odbierał (co jakiś czas, albo przez cały czas) i aby wszelka zmiana została wyświetlona natchmiastowo przez ten skrypt PHP. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
broda Napisano Styczeń 20, 2007 Zgłoszenie Share Napisano Styczeń 20, 2007 2) dodaj do crona wywolanie jakiegos skryptu php, a wczesniej wywoluj tego bashowego i przekierowywuj wyjscie na plik, 1) jak chces zmiec calkowite info o systemie, to moze przyda Ci sie polecenie sysreport pozdro Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
(BigFan)! Napisano Styczeń 24, 2007 Autor Zgłoszenie Share Napisano Styczeń 24, 2007 dzieki z tym "sysreport" świetne to jest!! cron to równie dobre posunięcie... A może ktoś jeszcze mi coś doradzi ?? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Stiffler Napisano Styczeń 24, 2007 Zgłoszenie Share Napisano Styczeń 24, 2007 Doradze Ci program gsysinfo, nie widze sensu tworzenia twojego skryptu (chyba ze sens jest hobbityczny) lepiej ulepsz ten program: http://gsysinfo.sourceforge.net/project/ Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się