///
Search
📼

NIC(hme) configuration check

#!/bin/ksh # # hme0 interface 체크. # # umask 022 stat_() { #link_status # 0 은 link down을 의미 # 1 은 link up을 의미 hme_stat=$( ndd -get /dev/hme link_status ) case ${hme_stat} in '0') print "작동 하지 않음" ; exit 0 ;; '1') print -n "작동중t" ; speed_ ;; *) print "hme 디바이스를 찾을수 없음 !" ;; esac } # status한 hme 디바이스 속도 체크 speed_() { #link_speed # 010 Mbps 로 구동중 # 1100 Mbps 로 구동중 hme_speed=$( ndd -get /dev/hme link_speed ) case ${hme_speed} in '0') print -n "10 Mbpst" ;; '1') print -n "100 Mbpst" ;; esac mode_ } # Stats the inteface for mode. mode_() { #link_mode (read only) # 0 은 Half-Duplex mode # 1 은 Full-Duplex mode hme_mode=$( ndd -get /dev/hme link_mode ) case ${hme_mode} in '0') print -n "Half-Duplext" ;; '1') print -n "Full-Duplext" ;; esac auto_neg } # This stats the interface and finds whether the nic is # set to autonegotiate options. auto_neg() { #adv_autoneg_cap # 0 for off # 1 for on hme_neg_mode=$( ndd -get /dev/hme adv_autoneg_cap ) case ${hme_neg_mode} in '0') print "off" ;; '1') print "on" ;; esac } set_100_full_duplex() { # 이 부분은 ndd command를 사용하여 speed와 모드를 100Mbps와 # 10Mbps 로 구분하여 놓았다 . # 100Mbps full-duplex 로 사용할 경우 : ndd -set /dev/hme instance 0 ndd -set /dev/hme adv_100T4_cap 0 ndd -set /dev/hme adv_100fdx_cap 1 ndd -set /dev/hme adv_100hdx_cap 0 ndd -set /dev/hme adv_10fdx_cap 0 ndd -set /dev/hme adv_10hdx_cap 0 ndd -set /dev/hme adv_autoneg_cap 0 } set_100_half_duplex() { # 10Mbps half-duplex 로 사용할 경우: ndd -set /dev/hme instance 0 ndd -set /dev/hme adv_100T4_cap 0 ndd -set /dev/hme adv_100fdx_cap 0 ndd -set /dev/hme adv_100hdx_cap 1 ndd -set /dev/hme adv_10fdx_cap 0 ndd -set /dev/hme adv_10hdx_cap 0 ndd -set /dev/hme adv_autoneg_cap 0 } set_10_full_duplex() { # 10Mbps full-duplex 로 사용할 경우 : ndd -set /dev/hme instance 0 ndd -set /dev/hme adv_100T4_cap 0 ndd -set /dev/hme adv_100fdx_cap 0 ndd -set /dev/hme adv_100hdx_cap 0 ndd -set /dev/hme adv_10fdx_cap 1 ndd -set /dev/hme adv_10hdx_cap 0 ndd -set /dev/hme adv_autoneg_cap 0 } set_10_half_duplex() { # 10Mbps half-duplex로 사용할 경우 : ndd -set /dev/hme instance 0 ndd -set /dev/hme adv_100T4_cap 0 ndd -set /dev/hme adv_100fdx_cap 0 ndd -set /dev/hme adv_100hdx_cap 0 ndd -set /dev/hme adv_10fdx_cap 0 ndd -set /dev/hme adv_10hdx_cap 1 ndd -set /dev/hme adv_autoneg_cap 0 } banner_() { print "nhme_stat howtosolaris.com " } hme_stat() { print "n`uname -n` NIC properties." print "체크 /dev/hme..." print "StatustSpeedttModettauto-negotiate" echo "------t-----tt----tt--------------" stat_ 2>> /dev/null banner_ } hme_reconfigure() { print "1) 100 Full duplex" print "2) 100 Half duplex" print "3) 10 Full duplex" print "4) 10 Half duplex" print "*) Abort" print -n "? " read answer case ${answer} in 1) set_100_full_duplex ;; 2) set_100_half_duplex ;; 3) set_10_full_duplex ;; 4) set_10_half_duplex ;; *) print "aborted" ;; esac banner_ exit 0 } got_root() { c_uid=$( id | cut -f2 -d= | cut -f1 -d'(' ) if [ "${c_uid}" != "0" ] then print "root로 로그인 하세요." exit 0 fi } case ${1} in 'config') got_root ; hme_reconfigure ;; 'stat') got_root ; hme_stat ;; *) print "Usage ${0} [ stat | config ]" ; exit 0 ;; esac
JavaScript
복사