前言linux
在上一篇博客中(http://freeloda.blog.51cto.com/2033581/1221075),咱們添加了關機與重啓功能,給主機添加了主機名,也實如今 3 級級別下運行 tserver 測試腳本,下面咱們來講一下,主機增長網絡功能 ^_^ ……web
1. 定義系統啓動過程當中,顯示服務啓動信息的顏色腳本vim
從上圖中咱們看到,咱們從新啓動網卡時,右邊會顯示 [ ok ] 的綠色提示符,在上一博客中咱們只簡單的顯示 tserver start …… 提示符如今不雅,下面咱們就來修飾一下!bash
1)、編寫 functions 腳本 網絡
[root@localhost ~]# vim functions #!/bin/bash # SCREEN=`stty -F /dev/console size 2>/dev/null` COLUN=${SCREEN#* } [ -z $COLUN ] && COLUN=80 SPA_COL=$[$COLUN-14] RED='\033[31m' GREEN='\033[32m' YELLOW='\033[33m' BLUE='\033[34m' RONMAL='\033[0m' success() { string=$1 RT_SPA=$[$SPA_COL-${#string}] echo -n "$string" for I in `seq 1 $RT_SPA`; do echo -n " " done echo -e "[ ${GREEN}OK${RONMAL} ]" } failure() { string=$1 RT_SPA=$[$SPA_COL-${#string}] echo -n "$string" for I in `seq 1 $RT_SPA`; do echo -n " " done echo -e "[ ${RED}FAILED${RONMAL} ]" }
2)、給腳本增長執行權限ide
[root@localhost ~]# chmod +x functions
3)、移植 seq 命令測試
[root@localhost ~]# sh addcom.sh Your command: seq /usr/bin/seq copy /usr/bin/seq finished.
4)、而後在tserver等服務腳本內調用 functions 腳本,便可實現顯示服務啓動的信息!spa
#!/bin/bash # # chkconfig: 35 55 44 # description: chris service # #調用腳本 . /etc/init.d/functions FILE=/var/lock/subsys/`basename $0` prog=`basename $0` start() { echo "starting `basename $0`..." touch $FILE [ $? -eq 0 ] && success "Starting $prog" || failure "Starting $prog" } stop() { echo "stopping `basename $0`..." rm -rf $FILE [ $? -eq 0 ] && success "Stopping $prog" || failure "Stopping $prog" } status() { if [ -e $FILE ]; then echo "Running.." else echo "stopping..." fi } usage() { echo "please insernt like start|stop|restart|status" } case $1 in start) start ;; stop) stop ;; restart) stop start ;; status) status ;; *) usage exit 1 ;; esac
5)、測試效果debug
開機效果:3d
關機效果:
有效果了吧,嘿嘿!下面咱們來增長網絡功能!
2. 增長網絡功能
下面是重點,不少朋友沒作成功都是這個緣由!查看網卡信息,你本身的虛擬機支持的網卡與驅動。
具休查處方法以下:
1). 查看物理網卡的驅動信息
[root@localhost ~] # ethtool -i eth0 driver: e1000 version: 7.3.21-k8-NAPI firmware-version: bus-info: 0000:02:00.0
2). 查看網卡的物理硬件型號
[root@localhost ~] # lspci | grep -i ethernet 02:00.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)
3). 查看該設備的模塊信息
[root@localhost ~] # modinfo e1000 filename: /lib/modules/2.6.32-279.14.1.el6.i686/kernel/drivers/net/e1000/e1000.ko version: 7.3.21-k8-NAPI license: GPL description: Intel(R) PRO/1000 Network Driver author: Intel Corporation, <linux.nics@intel.com> srcversion: 1B96AEAA963BB7C0044BA00
案例以下:(我這裏說兩個例子,一個是RedHat 5.8 一個是CentOS 5.5)
ReadHat 5.8 環境
1)、 虛擬機的網卡
查找 pcnet32 模塊
[root@localhost ~]# modinfo pcnet32 filename: /lib/modules/2.6.18-194.el5/kernel/drivers/net/pcnet32.ko license: GPL description: Driver for PCnet32 and PCnetPCI based ethercards author: Thomas Bogendoerfer srcversion: F81443556AAE169CBF80F55 alias: pci:v00001023d00002000sv*sd*bc02sc00i* alias: pci:v00001022d00002000sv*sd*bc*sc*i* alias: pci:v00001022d00002001sv*sd*bc*sc*i* depends: mii vermagic: 2.6.18-194.el5 SMP mod_unload gcc-4.1 parm: debug:pcnet32 debug level (int) parm: max_interrupt_work:pcnet32 maximum events handled per interrupt (int) parm: rx_copybreak:pcnet32 copy breakpoint for copy-only-tiny-frames (int) parm: tx_start_pt:pcnet32 transmit start point (0-3) (int) parm: pcnet32vlb:pcnet32 Vesa local bus (VLB) support (0/1) (int) parm: options:pcnet32 initial option setting(s) (0-15) (array of int) parm: full_duplex:pcnet32 full duplex setting(s) (1) (array of int) parm: homepna:pcnet32 mode for 79C978 cards (1 for HomePNA, 0 for Ethernet, default Ethernet (array of int) module_sig: 883f3504bb6456c596239a507de7fd112a65a09f5faef1f984967c867e1149c0d1cfb295a3d944f009f528a8f96e85f55b72b3eb94966d22deef2fa7ea2 [root@localhost ~]#
查找 mii 模塊
[root@localhost ~]# modinfo mii filename: /lib/modules/2.6.18-194.el5/kernel/drivers/net/mii.ko license: GPL description: MII hardware support library author: Jeff Garzik <jgarzik@pobox.com> srcversion: 16DCEDEE4B5629C222C352D depends: vermagic: 2.6.18-194.el5 SMP mod_unload gcc-4.1 module_sig: 883f3504bb6456c596239a507de7fd112e5b09f55847ebc59e54b97cff863c8097bf32f8f320e90a0a5a1b8a45b5f58a468d592bde47be53a7ca7f8 [root@localhost ~]#
2)、建立相應目錄
[root@localhost ~]# cd /mnt/sysroot/ [root@localhost sysroot]# ls ./ lib/ lib64/ [root@localhost sysroot]# mkdir ./lib/modules
3)、複製相應的模塊
[root@localhost sysroot]# cp -p /lib/modules/2.6.18-194.el5/kernel/drivers/net/pcnet32.ko ./lib/modules/ [root@localhost sysroot]# cp -p /lib/modules/2.6.18-194.el5/kernel/drivers/net/mii.ko ./lib/modules/ [root@localhost sysroot]# ls ./lib/modules/ mii.ko pcnet32.ko [root@localhost sysroot]#
4)、修改 rc.sysinit 文件
[root@localhost sysroot]# vim ./etc/rc.d/rc.sysinit
#增長網絡功能模塊
echo "insmod pcnet32 mode" /sbin/insmod /lib/modules/mii.ko /sbin/insmod /lib/modules/pcnet32.ko
5)、移植相關命令
[root@localhost ~]# sh addcom.sh Your command: insmod /sbin/insmod copy /sbin/insmod finished.
6)、增長網卡配置文件
[root@localhost ~]# mkdir -p /mnt/sysroot/etc/sysconfig/network-scripts [root@localhost ~]# vim /mnt/sysroot/etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static IPADDR=192.168.18.10 NETMASK=255.255.255.0 GATEWAY=192.168.18.254 ONBOOT=yes :wq
7)、建立相對應腳本
[root@localhost ~]# vim /mnt/sysroot/etc/init.d/network #!/bin/bash # # chkconfig: 35 09 90 # description:network servce . /etc/rc.d/init.d/functions CONF=/etc/sysconfig/network-scripts/ifcfg-eth0 . $CONF start () { NETMASK=16 ifconfig eth0 $IPADDR/$NETMASK up [ -z $GATEWAY ] && route add default gw $GATEWAY } stop() { ifconfig eth0 down } status () { ifconfig eth0 } usage() { ehco "like start,stop,restart" } case $1 in start) start success "config network eth0 " ;; stop) stop success "stop network eth0" ;; restart) stop Start success "restart network eth0" ;; status) status ;; *) usage ;; esac
8)、增長執行權限
[root@localhost ~]# chmod +x /mnt/sysroot/etc/init.d/network
9)、移植 ifconfig 命令
[root@localhost ~]# sh addcom.sh Your command: ifconfig /sbin/ifconfig copy /sbin/ifconfig finished.
10)、建立軟連接
[root@localhost rc0.d]# ln -sv ../init.d/network K90network create symbolic link `K90network' to `../init.d/network' [root@localhost rc0.d]# ls K44tserver K90network S99halt [root@localhost rc6.d]# ln -sv ../init.d/network K90network create symbolic link `K90network' to `../init.d/network' [root@localhost rc6.d]# ls K44tserver K90network S99reboot [root@localhost rc3.d]# ln -sv ../init.d/network S09network create symbolic link `S09network' to `../init.d/network' [root@localhost rc3.d]# ls S09network S55tserver
11)、測試效果以下
CentOS 5.5 環境,這個是我本身測試的環境,照着作的朋友請注意!與上面不一樣的是,我這裏的網卡和驅動以下圖,
1)、查看網卡與驅動類型
2)、複製相關驅動到 /lib/modules 下以下圖,
3)、修改 rc.sysinit 文件,以下圖
4)、移植相關命令
[root@localhost ~]# sh addcom.sh Your command: insmod /sbin/insmod copy /sbin/insmodfinished.
5)、增長網卡配置文件
[root@localhost ~]# mkdir -p /mnt/sysroot/etc/sysconfig/network-scripts [root@localhost ~]# vim /mnt/sysroot/etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static IPADDR=192.168.18.10 NETMASK=255.255.255.0 GATEWAY=192.168.18.254 ONBOOT=yes :wq
6)、建立相對應腳本
[root@localhost ~]# vim /mnt/sysroot/etc/init.d/network #!/bin/bash # # chkconfig: 35 09 90 # description:network servce . /etc/rc.d/init.d/functions CONF=/etc/sysconfig/network-scripts/ifcfg-eth0 . $CONF start () { NETMASK=16 ifconfigeth0 $IPADDR/$NETMASK up [ -z $GATEWAY ] && route add default gw $GATEWAY } stop() { ifconfigeth0 down } status () { ifconfigeth0 } usage() { ehco "like start,stop,restart" } case$1 in start) start success "config network eth0 " ;; stop) stop success "stop network eth0" ;; restart) stop Start success "restart network eth0" ;; status) status ;; *) usage ;; esac
7)、增長執行權限
[root@localhost ~]# chmod +x /mnt/sysroot/etc/init.d/network
8)、移植 ifconfig 命令
[root@localhost ~]# sh addcom.sh Your command: ifconfig /sbin/ifconfig copy /sbin/ifconfigfinished.
9)、建立軟連接
[root@localhost rc0.d]# ln -sv ../init.d/network K90network create symbolic link `K90network' to `../init.d/network' [root@localhost rc0.d]# ls K44tserver K90network S99halt [root@localhost rc6.d]# ln -sv ../init.d/network K90network create symbolic link `K90network' to `../init.d/network' [root@localhost rc6.d]# ls K44tserver K90network S99reboot [root@localhost rc3.d]# ln -sv ../init.d/network S09network create symbolic link `S09network' to `../init.d/network' [root@localhost rc3.d]# ls S09network S55tserver
10)、測試效果以下
IP地址順利的配置上去了,嘿嘿!
11)、相關操做演示以下
爲lo配置IP地址,
ping 測試,
因爲個人網卡是橋接的,下面咱們測試一下,ping網關
全部測試結束,嘿嘿!有興趣的朋友能夠嘗試的作一下!