zoukankan      html  css  js  c++  java
  • update.sh

    #!/bin/sh

    #$1:install path $2:hub link ip and port
    install_path=$1
    if [ -z "$install_path" ]
    then
    install_path=$HOME
    fi
    UUID=$2
    HostID=$3
    HubIpPort=$4

    install_dir="${install_path}/agent60"
    src_dir="agent60"

    #flat to success
    agent_flag=1
    configPara_flag=1
    crontab_flag=1


    nowtime=`date +"%Y-%m-%d %T"`
    echo $nowtime "agent60 install begin"
    echo "===================================================="

    echo "set environment variables"
    if [ -f $HOME/.bash_profile ]
    then
    . $HOME/.bash_profile
    elif [ -f $HOME/.profile ]
    then
    . $HOME/.profile
    elif [ -f $HOME/.bashrc ]
    then
    . $HOME/.bashrc
    fi

    OS_TYPE=`uname`
    if [ $OS_TYPE = "AIX" ]
    then
    export LIBPATH=.:../lib:$LIBPATH
    export LD_LIBRARY_PATH=.:../lib:$LD_LIBRARY_PATH
    elif [ $OS_TYPE = "HP-UX" ]
    then
    export SHLIB_PATH=.:../lib:$SHLIB_PATH
    export LD_LIBRARY_PATH=.:../lib:$LD_LIBRARY_PATH
    elif [ $OS_TYPE = "SunOS" ]
    then
    LD_LIBRARY_PATH=.:../lib:$LD_LIBRARY_PATH
    export LD_LIBRARY_PATH
    else
    export LD_LIBRARY_PATH=.:../lib:$LD_LIBRARY_PATH
    fi

    #stop agent60
    pid=`ps -ef | grep "agent60 -m" | grep -v "grep" |awk '{print $2}'`
    if [ $pid ]
    then
    kill -9 $pid
    fi
    sleep 1

    #install
    umask 022

    if [ -f $install_dir ]
    then
    rm -f $install_dir
    fi

    if [ ! -d $install_dir ]
    then
    cp -r $src_dir $install_dir
    else
    rm -f $install_dir/bin/agent60

    cp $src_dir/bin/agent60 $install_dir/bin/
    cp -r $src_dir/config/* $install_dir/config/
    if [ -d $src_dir/lib ]
    then
    cp -r $src_dir/lib/* $install_dir/lib
    fi
    fi
    chmod -R 755 $install_dir

    #dir is exist
    if [ ! -d $install_dir ]
    then
    echo "$install_dir create failed"
    echo "agent60 install failed"
    exit
    else
    if [ ! -d $install_dir/bin ]
    then
    echo "$install_dir/bin create failed"
    echo "agent60 install failed"
    exit
    fi
    fi

    #edit agent.int parameter
    if [ x${UUID} != x ]
    then
    sed "s/UUID.*/UUID=${UUID}/" $install_dir/config/agent.ini > inst_agent.ini.bak
    mv -f inst_agent.ini.bak $install_dir/config/agent.ini

    #success?
    line=`cat $install_dir/config/agent.ini | grep "UUID=${UUID}" | wc -l`
    if [ $line != 0 ]
    then
    echo "$install_dir/config/agent.ini UUID parameter update success"
    else
    configPara_flag=0
    echo "$install_dir/config/agent.ini UUID parameter update failed"
    exit
    fi
    fi

    #if [ x${HostID} != x ]
    #then
    sed "s/HostID.*/HostID=${HostID}/" $install_dir/config/agent.ini > inst_agent.ini.bak
    mv -f inst_agent.ini.bak $install_dir/config/agent.ini

    #success?
    line=`cat $install_dir/config/agent.ini | grep "HostID=${HostID}" | wc -l`
    if [ $line != 0 ]
    then
    echo "$install_dir/config/agent.ini HostID parameter update success"
    else
    configPara_flag=0
    echo "$install_dir/config/agent.ini HostID parameter update failed"
    exit
    fi
    #fi

    if [ x${HubIpPort} != x ]
    then
    sed "s/HubIpPort.*/HubIpPort=${HubIpPort}/" $install_dir/config/agent.ini > inst_agent.ini.bak
    mv -f inst_agent.ini.bak $install_dir/config/agent.ini

    #success?
    line=`cat $install_dir/config/agent.ini | grep "HubIpPort=${HubIpPort}" | wc -l`
    if [ $line != 0 ]
    then
    echo "$install_dir/config/agent.ini HubIpPort parameter update success"
    else
    configPara_flag=0
    echo "$install_dir/config/agent.ini HubIpPort parameter update failed"
    exit
    fi
    fi

    #agent60?
    if [ ! -f $install_dir/bin/agent60 ]
    then
    agent_flag=0
    echo "${install_dir}/bin path agent60 not exit,install failed"
    exit
    else
    cd $install_dir/bin
    ./agent60 -v
    exeRet=$?
    if [ $exeRet != 0 ]
    then
    agent_flag=0
    echo "agent60 exe error,install failed"
    exit
    fi
    fi

    #install crontab
    cd $install_path
    crontab_bocs=`crontab -l |grep -w "agent60" |grep -w "monitor.sh"|grep -v grep`
    if [ "${crontab_bocs}" = "" ]
    then
    crontab -l > crontab_bocs.list
    echo "0,10,20,30,40,50 * * * * sh ${install_dir}/bin/monitor.sh ${install_dir}/bin>/dev/null 2>&1" >> crontab_bocs.list
    crontab crontab_bocs.list
    rm -f crontab_bocs.list

    line=`crontab -l |grep -w "agent60" |grep -w "monitor.sh"| grep -v grep |wc -l`
    if [ $line = 0 ]
    then
    crontab_flag=0
    echo "agent60 crontab monitor add failed"
    else
    echo "agent60 crontab monitor add success"
    fi
    fi


    #run
    if [ "${agent_flag}${configPara_flag}${crontab_flag}" = "111" ]
    then
    sh ${install_dir}/bin/monitor.sh ${install_dir}/bin
    sleep 1
    pid=`ps -ef | grep "agent60 -m" | grep -v "grep" |awk '{print $2}'`
    if [ $pid ]
    then
    echo "agent60 run success,process id: ${pid}"
    echo "all install success"
    else
    echo "agent60 run failed"
    fi
    else
    echo "agent60 install failed"
    fi

  • 相关阅读:
    socket的双重属性
    Client/Server 模型 与socket
    简单理解Socket 重要
    C++ 异常处理机制的实现
    ARM汇编之MOV指令
    指令集 与 cpu
    寄存器简介 与 ebp esp
    ESP和EBP 栈顶指针和栈底指针
    函数调用过程栈帧变化详解
    栈帧
  • 原文地址:https://www.cnblogs.com/wcc331902579/p/5914163.html
Copyright © 2011-2022 走看看