网络脚本不起作用。 CentOS 2.6

时间:2012-12-20 13:28:47

标签: linux bash shell centos

Centos 2.6.32-179.9.1.el6.i686

您好,我的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

1 个答案:

答案 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以帮助调试。这将向您展示它在运行时所做的事情。