一段shell指令碼

來源:互聯網
上載者:User

標籤:proc   clean   sid   $?   files   oca   before   date   update   

//根據入參增加nginx反向 Proxy
#!/bin/bash
#set -x

log_path="./proc/logs/shellExecute.log"
log_path_back="./proc/logs/shellExecute.log1"
nginxBasePath="/home/netnumen/ems/ums-server/utils/nginx/nginx-1.4.7"
nginxConfPath="${nginxBasePath}/conf/nginx.conf"
runNginx="${nginxBasePath}/run.sh"
stopNginx="${nginxBasePath}/stop.sh"
app=$(echo $1 | tr -d ‘"‘)
echo $app
function execLog(){
if [ "$?" -ne 0 ]
then
echo "[error] $(date "+%Y-%m-%d %H-%M-%S"), ${1}" >> $log_path
exit 1
else
echo "[info] $(date "+%Y-%m-%d %H-%M-%S"), ${1}" >> $log_path
fi
}
function CLEAN_LOG()
{
declare -i FILESIZE LIMIT
FILESIZE=0
FILESIZE=`stat -c%s ${log_path}`
LIMIT=104857600 #100M Bytes
if [ $FILESIZE -gt $LIMIT ]
then
rm -rf ${log_path_back}
mv ${log_path} ${log_path_back}
fi

}
function main(){
CLEAN_LOG

echo "************************************redirect app to rdk,update nginx*****************************************" >> $log_path
execLog "redirect appName: ${app}"
beforeInsertLocation=$(sed -n "/inside_location_end/=" ${nginxConfPath})
execLog "compute insert location num: ${beforeInsertLocation}"
let beforeInsertLocation=beforeInsertLocation-1
execLog "compute before insert location num: ${beforeInsertLocation}"

insertContent="if (\$uri ~ ^/${app}/){ proxy_pass http://localhost:5812; break; }"
execLog "add content: ${insertContent}"
existLocation=$(sed -n "/if (\$uri ~ ^\/${app}\/){ proxy_pass http:\/\/localhost:5812; break; }/=" ${nginxConfPath})
execLog "insert url existed?location: ${existLocation}"
if [ ! -n "$existLocation" ];then
sed -i "${beforeInsertLocation}a\ ${insertContent}" ${nginxConfPath}
nohup $stopNginx;$runNginx &
fi
execLog "sed app url redirt content!"

}

main



一段shell指令碼

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.