Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15530642
  • 博文数量: 2005
  • 博客积分: 11986
  • 博客等级: 上将
  • 技术积分: 22535
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-17 13:56
文章分类

全部博文(2005)

文章存档

2014年(2)

2013年(2)

2012年(16)

2011年(66)

2010年(368)

2009年(743)

2008年(491)

2007年(317)

分类:

2008-12-28 12:08:33

请查看增强版:《浅析shell实现random随机抽取一个命令随机执行的源程序》
可以在busybox-1.12.0下跑的精简了很多东西的shell脚本,没办法,busybox-1.12.0支持的太有限了:<
# Copyright 2008 luther.gliethttp
#============================================================================
lu_list_commands=''

lu_drain_commands() {
    # cmds=$1
    # echo $cmds
    # echo `expr index "$cmds" ';'`
    return 0   
}

lu_laping() {
    # echo $@
    shift
    local maxcounts=$1
    local sleep_seconds=$2
    local pingcounts=$3
    local interval=$4
    local ip_addr=$5

    while [ $maxcounts -gt 0 ]; do
        ping -c $pingcounts $ip_addr -i $interval >/dev/null 2>&1
        if [ $? -gt 0 ]; then
            echo 'wrong'
        else
            echo 'pass'
        fi
        sleep $sleep_seconds
        maxcounts=`expr $maxcounts - 1`
    done
}

Usage() {
    # cat <<\_EOF
    cat <<_EOF

Usage:
`basename $0` -t[loop seconds] cmd0 cmd1 ...
              -a[maxcounts],[sleep_seconds],[pingcounts],[interval],[ip_addr]
commands list:
_EOF
    echo
    return 0
}

while getopts hva: op; do
    case $op in
        'h')
            Usage
            exit 0
        ;;
            
        't')
            LU_SECONDS=$OPTARG
            echo $LU_SECONDS | grep -q '[^0-9]' && Usage && exit 1
            [ $LU_SECONDS -eq 0 ] && LU_SECONDS=$((0xffffffff))
        ;;
           
        'a')
                [ -z $lapingindex ] && lapingindex=0
                substring=$OPTARG
                # echo `expr index "$substring" ','`
                substring=`echo $substring | tr ',' ' '`
                # ${substring//','/' '}
                if [ $lapingindex -ne 0 ]; then
                    lu_list_commands=$lu_list_commands';'
                fi
                lu_list_commands=$lu_list_commands"lu_laping"' '"$lapingindex"' '"$substring"
                lapingindex=`expr $lapingindex + 1`
                echo '==========================================='
                echo "$substring"
                lu_laping $lapingindex $substring
        ;;

        *)
        ;;
    esac   
done   

# echo $lu_list_commands
# ($lu_list_commands)
# (lu_laping 0 2 1 1 1 127.0.0.1;lu_laping 0 2 1 1 1 127.0.0.1)
lu_drain_commands "$lu_list_commands"
luther@gliethttp:/vobs$ ./simple.sh -a 5,1,1,1,127.0.0.1 -a 2,1,1,1,gliethttp.cublog.cn
===========================================
5 1 1 1 127.0.0.1
pass
pass
pass
pass
pass
===========================================
2 1 1 1 gliethttp.cublog.cn
pass
pass
luther@gliethttp:/vobs$
阅读(1752) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~