2012-12-20 31 views
0

Centos 2.6.32-179.9.1.el6.i686網絡腳本不起作用。 CentOS 2.6

你好,我的noowbie腳本有問題。 它不起作用。 當我嘗試使用它(例如,/etc/init.d/myscript start)時,什麼也沒有發生。 在此之前,我對它做了chkconfig --add myscript和chmod 777。 你能幫我嗎?

#!/bin/bash 
#chkconfig: 2345 10 90 
#description test 

. /etc/init.d/functions 

if [ ! -f /etc/sysconfig/network ]; then 
    exit 0 
fi 

. /etc/sysconfig/network 

if [ -f /etc/sysconfig/network-scripts/ifcfg-eth1 ]; then 
    . /etc/sysconfig/network-scripts/ifcfg-eth1 
fi 

[ "${NETWORKING}"="no" ] && exit 0 
[ -x -a /sbin/ifconfig ] || exit 1 

case "$1" in 
    start) 
     echo "started" 
     ifconfig eth1 ${IPADDR} netmask ${NETMASK} up 
     echo 1 > /proc/sys/net/ipv4/ip_forward 
     ;; 
    stop) 
     echo "stopping" 
     ifconfig eth1 ${IPADDR} netmask ${NETMASK} down 
     echo 0 > /proc/sys/net/ipv4/ip_forward 
     ;; 
    status) 
     echo "showing status" 
     ifconfig 
     cat /proc/sys/net/ipv4/ip_forward 
     route -n 
     ;; 
esac 

exit 0 

回答

0

這條線:

[ -x -a /sbin/ifconfig ] || exit 1 

是一個語法錯誤,你應該從bash診斷,當您嘗試運行該腳本。假設/etc/init.d/functions/etc/sysconfig/network/etc/sysconfig/network-scripts/ifcfg-eth1中的某些內容尚未導致您的腳本終止,該行將會。

而實際上,通常不是/etc/sysconfig/network目錄?如果是這樣,這將導致你的腳本只是退出,因爲它不是一個文件:

if [ ! -f /etc/sysconfig/network ]; then 
    exit 0 
fi 

編輯:您可能希望你的腳本的第一行更改爲#!/bin/bash -x來幫助調試。這會向你展示它在運行時所做的一切。

+0

/etc/sysconfig/network是一個可變的文件NETWORKING = yes(或no)存在。如果我理解正確,這是默認的centos結構。 – user1918909

+0

好吧,這就是爲什麼我問 - 我不熟悉CentOS,在一些發行版上,這實際上是一個包含其他內容的目錄... – twalberg

+0

那麼,關於您所談論的語法錯誤?附: /etc/init.d/functions它是具有shell函數的centos系統庫。/etc/sysconfig/network-scripts/ifcfg-eth1是一個配置爲eh1接口的文件。我手動製作。 – user1918909