【问题标题】:Network script doesn't work. CentOS 2.6网络脚本不起作用。 CentOS 2.6
【发布时间】:2012-12-21 01:43:26
【问题描述】:

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

【问题讨论】:

    标签: linux bash shell centos


    【解决方案1】:

    这一行:

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

    【讨论】:

    • /etc/sysconfig/network 是变量 NETWORKING=yes(或 no)存在的文件。如果我理解正确的话,这是一个默认的 centos 结构。
    • 好吧,这就是我问的原因——我不熟悉 CentOS,在某些发行版上,这实际上是一个包含其他东西的目录...
    • 那么,关于您所说的语法错误是什么?附言/etc/init.d/functions 是带有 shell 函数的 centos 系统库。 /etc/sysconfig/network-scripts/ifcfg-eth1 是配置 eh1 接口的文件。我是手动制作的。
    • [ -x -a <filename> ] 是错误的 - <filename> 是多余的,因为 -x 只接受一个参数,test/[ 会认为多余的单词是语法错误。你的意思可能是[ -x <filename> ]
    • 对上述评论的修正——现在我已经对其进行了实际测试,看来bash 至少不会像ksh 那样在该构造上引发错误,但含义并没有似乎也是您的想法......它似乎意味着“如果(长度('-x')> 0)和(长度('/sbin/ifconfig')> 0)”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-14
    • 1970-01-01
    • 1970-01-01
    • 2022-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多