文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>读取配置文件以及ftp 脚本

读取配置文件以及ftp 脚本

时间:2010-06-23  来源:jianhuali0118

 

#!/bin/bash

################################################################################
#@brief 功能:初始化日志,从配置文件读取相应的配置信息
#@param in         "$config_name" 配置文件绝对路径
#@param in         "$section"         类型
#@param in        "$key"             关键值名称
#@param ot        value             返回关键值对应的值
#@return 0 成功 1失败
#@example     get_ini "$config_name" "$section" "$key" value
#author:    lijianhua
#date:        2010-6-23 14:45
################################################################################
function get_ini()
{
    local FILE=$1
    local SECTION=$2
    local KEY=$3

    local LINE=" "
    local var1=" "
    local var2=" "
    local section=" "
    local section_flag=NO
    
    #echo $FILE    
    #echo $SECTION    
    #echo $KEY

    while read LINE
    do
        # trim preceding & trailing spaces
        LINE=` echo $LINE | sed 's/ //g' |sed 's/[[:space:]]*//g' `
        #echo $LINE
        #过滤空行 以及以';'或'#'开头的行
        if [ -z "$LINE" -o "${LINE:0:1}" = ";" -o "${LINE:0:1}" = "#" ]; then
            # skip null line & comment line
            #echo $LINE
               continue;
        fi
        #echo $LINE
        
        #echo "$section_flag"
        #查找section并赋值给section_flag
        if [ "$section_flag" = "NO" ]; then
            #echo $LINE;
            if [ "${LINE:0:1}" = "[" ]; then
                section=` echo $LINE|awk '{print substr($0, 2, index($0,"]")-2 )}' `;
                #echo $section;
                if [ "$section" = "$SECTION" ]; then
                    #echo "this section";
                    #echo $section;
                    section_flag=YES;
                    continue;
                else
                    #echo "no section";
                    #echo $section;
                    continue;
                fi
            else
                continue;
            fi
        fi
        
        #echo "find section"
        #找到了section 开始查找key值
        if [ "${LINE:0:1}" = "[" ]; then
            # skip null line & comment line
            #在找到的 section内没有找到对应配置
               return -1;
        fi
        #echo $LINE
        var1=`echo $LINE | awk -F "=" '{print $1}'`
        if [ "$KEY" = "$var1" ]; then
            # skip null line & comment line
            #echo $LINE
            #echo "this key"
            var2=`echo $LINE | awk -F "=" '{print $2}'`
            eval $4=\"$var2\"
            #echo $var1
            #echo $var2    
            return 0;    
        else
            #echo $var1
            #echo "not this key"
            continue;
        fi

    done < $FILE;
    
    return 1;
}


################################################################################
#@brief 功能:从配置文件初始化主机信息
#@return 0 成功 1失败
#@example     init_info
#gl_var        gl_s_ip,gl_s_port,gl_s_user,gl_s_passwd,gl_config_name,gl_section
#author:    lijianhua
#date:        2010-6-23 14:45
################################################################################
function init_info()
{
    ##获取
    get_ini "$gl_config_name" "$gl_section" "s_ip" gl_s_ip
    if [ $? = 0 ];then
        echo " ";
        echo "succ";
        echo $gl_s_ip;    
    else
        echo $?;
        echo "err";
        return 1;
    fi
    
    
    ##获取
    get_ini "$gl_config_name" "$gl_section" "s_port" gl_s_port
    if [ $? = 0 ];then
        echo " ";
        echo "succ";
        echo $gl_s_port;    
    else
        echo $?;
        echo "err";
        return 1;
    fi
    
    
    ##获取
    get_ini "$gl_config_name" "$gl_section" "s_user" gl_s_user
    if [ $? = 0 ];then
        echo " ";
        echo "succ";
        echo $gl_s_user;    
    else
        echo $?;
        echo "err";
        return 1;
    fi
    
    
    ##获取
    get_ini "$gl_config_name" "$gl_section" "s_passwd" gl_s_passwd
    if [ $? = 0 ];then
        echo " ";
        echo "succ";
        #echo $gl_s_passwd;    
    else
        echo $?;
        echo "err";
        return 1;
    fi
    
    return 0;
}

#####################################################################
#生成ftp脚本
#author:    lijianhua
#date:        2010-6-23 14:45
#####################################################################
function init_ftpfile()
{
    #F="tmpxxxx.ftp"
    echo "open $gl_s_ip $gl_s_port"         > $F
    echo "user $gl_s_user $gl_s_passwd"         >> $F
    echo "bin"             >> $F
    #echo "dir"             >> $F
    echo "cd $gl_s_filepath"             >> $F
    echo "lcd $gl_c_filepath"             >> $F
    echo "mput $gl_c_filename"         >> $F
    echo "bye"             >> $F
    
    return 0;
}

############################脚本执行开始#########################
###服务器主机信息
gl_s_ip=
gl_s_port=
gl_s_user=
gl_s_passwd=

##文件目录信息
gl_s_filepath=/home/sand/ftp/                #
gl_c_filepath=/home/topn_ljh/sbin/            #
gl_c_filename=" *.sh "                        #需要ftp的文件

##配置文件信息
gl_config_name=ftp.ini
gl_section=test245

###ftp脚本临时文件
F="tmpxxxx.ftp"

####调用初始化函数
init_info;
if [ $? != 0 ];then
    echo " ";
    echo "error init_info";
fi
echo "ok init_info";

####初始化ftp脚本文件
init_ftpfile;
if [ $? != 0 ];then
    echo " ";
    echo "error init_ftpfile";
fi
echo "ok init_ftpfile";

#####执行ftp脚本
ftp -i -in < $F
rm -rf $F

echo "cmd run end !!!!!!!!!result


相关阅读 更多 +
排行榜 更多 +
翌日波奇狗的历险记手机版下载

翌日波奇狗的历险记手机版下载

休闲益智 下载
怪兽远征安卓版下载

怪兽远征安卓版下载

角色扮演 下载
谷歌卫星地图免费版下载

谷歌卫星地图免费版下载

生活实用 下载