關(guān)于樹莓派系列,在有空余的時間里面,我會把斷斷續(xù)續(xù)的工作中處理過的一些小的點記錄一下,比較零散,但是是真實操作記錄,或許對需要的朋友有點小的幫助。

樹莓派系列參見這里:樹莓派系列。

之前有寫過一次遠程更新樹莓派的文章,當(dāng)時腳本在測試環(huán)境調(diào)通了。參見 【樹莓派】【原】遠程連接樹莓派設(shè)備,以及進行遠程應(yīng)用更新與升級

但是在生產(chǎn)環(huán)境測的時候,卻發(fā)現(xiàn)不同環(huán)境還稍微有點小的問題。

因為之前舊的不同版本略有小的差異導(dǎo)致;之后經(jīng)過優(yōu)化,重新測試OK。

優(yōu)化點主要是這兩點,另外有點其他的小調(diào)整:

1.使用ln軟連接方式,而不是mv版本號;

2.修改stop服務(wù)步驟,kill進程有效性;

在這里,重新補充一下最新的Scripts,如下:

boxagent@iZ2zeed4f6hbydt2078ddcZ:~$ cat boxrelease/script/upgrade_osprey.sh 

大學(xué)生就業(yè)培訓(xùn),高中生培訓(xùn),在職人員轉(zhuǎn)行培訓(xùn),企業(yè)團訓(xùn)

#!/bin/sh

#config
APP_NAME=osprey
USER_HOME=/home/lifeccp/webapp
RELEASE_SRC="boxagent@smith.lifeccp.com:/home/boxagent/boxrelease/osprey/*.zip"#function
say() {
    echo -e "[Osprey Deploy] $0: $1"}

fetch_artifacts() {
    DEST="$USER_HOME/incoming/${APP_NAME}/"
    [ -d ${DEST} ] || mkdir -p ${DEST}
    say "Fetching artifacts from $ARTIFACTS_SRC to ${DEST}"
    scp ${RELEASE_SRC} ${DEST} 
    say "Unzip the new war"
    cd ${DEST} && unzip -qo *.zip    
    
    say "Change startup started"
    sed -i 8d ${USER_HOME}/${APP_NAME}/startup 
    sed -i '8i MAIN_JAR=osprey.release.jar'  ${USER_HOME}/${APP_NAME}/startup   
    say "Change startup finished"    
    if [ "$?" = "0" ]; then
        say "\033[32m -=Fetch artifacts finished=- \033[0m"    else
        say "\033[31m -=Fetch artifacts failed=- \033[0m"
        exit 1
    fi

}

stop_app() {        
    say "Stopping [${APP_NAME}]"
    pkill -f ${APP_NAME}
    osprey_pid=$(pgrep -f ${APP_NAME})    if [ "${osprey_pid}" = "" ]; then
        say "\033[32m -=Stop ${APP_NAME} finished=- \033[0m"    else
        say "\033[32m -=Stop ${APP_NAME} failed=- \033[0m"
        kill -9 "${osprey_pid}"
        kill -9 `ps aux | grep osprey | awk '{print $2}'`
        say "\033[32m -=Kill -9 ${APP_NAME}=- \033[0m"
    fi
    say "Stopping [${APP_NAME}] finished"}

backup_app() {
    DEST="$USER_HOME/archive/${APP_NAME}$(date '+%Y%m%d%H%M')/"
    say "make backup dir ${DEST}"
    mkdir -p "${DEST}"
    cp -r ${USER_HOME}/${APP_NAME}/* ${DEST}    
    say "\033[32m -=Backup ${APP_NAME} finished=- \033[0m"
}

deploy_app() {
    DEST="$USER_HOME/incoming/${APP_NAME}"
    say "Deploy ${APP_NAME}"

    say "Remove old app"
    rm -rf $USER_HOME/$APP_NAME/osprey*.release.jar
    rm -rf $USER_HOME/$APP_NAME/osprey*.release.jar.original

    say "Copying new app start"
    cp ${DEST}/osprey*.release.jar $USER_HOME/$APP_NAME/
    cp ${DEST}/osprey*.release.jar.original $USER_HOME/$APP_NAME/
    say "Copying new app finished"
    
    say "Make app link start"
    ln -s /home/lifeccp/webapp/osprey/osprey-*.release.jar /home/lifeccp/webapp/osprey/osprey.release.jar    
    say "Make app link finished"
    
    if [ "$?" = "0" ]; then
        say "\033[32m -=Deploy ${APP_NAME} finished=- \033[0m"
    else
        say "\033[31m -=Deploy ${APP_NAME} failed=- \033[0m"
        exit 1
    fi
}


clear() {
    say "clear $USER_HOME/incoming/${APP_NAME}/"
    rm -rf $USER_HOME/incoming/${APP_NAME}/*
}


start_app() {
    say "Start [${APP_NAME}]"
    sudo reboot
    if [ "$?" = "0" ]; then
        say "\033[32m -=Start reboot finished=- \033[0m"
    else
        say "\033[31m -=Start reboot failed=- \033[0m"
        exit 1
    fi
}

publish() {
    say "********Step1 start..."
    fetch_artifacts
    say "********Step1 finished...\n\n********Step2 start..."
    stop_app
    say "********Step2 finished...\n\n********Step3 start..."
    backup_app
    say "********Step3 finished...\n\n********Step4 start..."
    deploy_app  
    say "********Step4 finished...\n\n********Step5 start..."
    clear
    say "********Step5 finished...\n\n********Step6 start..."
    start_app
    say "********Step6 finished...Upgrade finished!"
}

#### do it ###
publish

大學(xué)生就業(yè)培訓(xùn),高中生培訓(xùn),在職人員轉(zhuǎn)行培訓(xùn),企業(yè)團訓(xùn)

 

腳本使用方法:

1.使用ssh方式登錄agent被控機;

2.執(zhí)行如下命令;

scp boxagent@smith.lifeccp.com:/home/boxagent/boxrelease/script/upgrade_osprey.sh .

3.輸入密碼;

4.等待reboot;

 

升級完成之后,可以自己查看服務(wù)是否正常,一般情況下,沒什么問題。

 

轉(zhuǎn)載請注明出處:http://www.cnblogs.com/haochuang/

http://www.cnblogs.com/haochuang/p/6598140.html