一段shell脚本
//根据入参增加nginx反向代理
#!/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脚本的更多相关文章
- 一段shell脚本分析
工作中碰到这样的需求: 1.每天定时要执行python脚本生成excel 2.将生成的excel拷贝到特定目录下 3.通过python发送脚本发送给特定的接收者 因为之前没有接触过shell脚本,同事 ...
- 统计网卡流量的两段shell脚本(使用ifconfig)
一个很小巧的shell脚本,使用ifconfig的不间断输出来统计网卡的流量,有需要的朋友可以参考下 使用shell脚本计算Linux网卡流量,方法中最关键点: ifconfig $eth_name ...
- 采用shell脚本统计代码的行数
刚毕业那会儿有一次去台湾公司面试,我问多行代码怎么写.我从来没有想过这个问题,粗略计算,.惊叹:大概几十万行不行. 最近整理资料,看着eclipse左边全面上市,我觉得这个东西.代码共同拥有的行倒底总 ...
- Jenkins结合shell脚本实现(gitLab/gitHub)前端项目自动打包部署服务器
原始发布部署: 石器时代的我们,先是本地打包好项目,在去服务器上把原来的文件删了,然后回到本地copy到服务器: 这操看起来简单,实际部署的人就知道多烦了,假如来几个项目都要重新发布:那就爽了: 今天 ...
- shell脚本分析 nginx日志访问次数最多及最耗时的页面
当服务器压力比较大,跑起来很费力时候.我们经常做站点页面优化,会去查找那些页面访问次数比较多,而且比较费时. 找到那些访问次数高,并且比较耗时的地址,就行相关优化,会取得立竿见影的效果的. 下面是我在 ...
- 用于检测进程的shell脚本代码小结
本文介绍一段shell脚本,它可以检测某进程或某服务是否正在运行,然后以邮件通知.有需要的朋友参考下 一个简单的shell脚本,用来找出关键的服务是否正在运行,适用于Linux操作系统或Unix操作系 ...
- 自动化软件部署的shell脚本
在实际项目中,我们经常用到需要自动化部署软件的情况,这种情况下,我们就不能人为地在命令行下敲击命令了,一切都需要通过shell脚本自动化完成.所谓自动化完成,其实也就是通过写shell程序,模拟人为敲 ...
- 下载Google官方/CM Android源码自己主动又一次開始的Shell脚本
国内因为某种原因,下载CM或Google官方的Android源码总easy中断.总看着机器.一中断就又一次运行repo sync还太麻烦,所以我特意编写了一段shell脚本(download.sh). ...
- 通过Shell脚本来创建批量服务器上的MySQL数据库账号
1.项目背景 因监控需要,我们需要在既有的每个MySQL实例上创建一个账号.公司有数百台 MySQL 实例,如果手动登入来创建账号很麻烦,也不现实.所以,我们写了一个简单的shell脚本,用来创建批量 ...
随机推荐
- linux 拆分文件
split [OPTION]... [INPUT [PREFIX]] :根据行或者大小拆分文件 split file_name :默认把文件file_name拆分成xaa,xab,xac,...... ...
- Markdown(github)语法
<< 访问 Wow!Ubuntu NOTE: This is Simplelified Chinese Edition Document of Markdown Syntax. If yo ...
- 苹果和虫子问题C++
如果需要转载,请注明出处:http://www.cnblogs.com/wongyi/p/8205305.html 最近在给小朋友补奥数课,顺便看了几道题目,觉得写出来会比较集中,整理一下哈哈哈. 问 ...
- java8 foreach不能使用break、countinue
在学习1.8新特性的过程中,发现foreach中不可以使用break和countinue,然后我使用了return,结果如下图,对循环并没有影响. 百度一下,发现了一个不一样的回答 然后我就看了下源码 ...
- 王垠:写给支持和反对《完全用Linux工作》的人们
王垠:写给支持和反对<完全用Linux工作>的人们 在一阵阵唾骂和欢呼声中,<完全用linux工作>被转载到了天涯海角.很多人支持我,也有很多人唾骂我.我不知道它是怎样流传到那 ...
- 洛谷——P2007 魔方
P2007 魔方 常神牛家的魔方都是3*3*3的三阶魔方,大家都见过. 模拟即可: #include<iostream> #include<cstdio> #include&l ...
- Python利用带权重随机数解决抽奖和游戏爆装备问题
关于带权随机数 为了帮助理解,先来看三类随机问题的对比: 1.已有n条记录,从中选取m条记录,选取出来的记录前后顺序不管. 实现思路:按行遍历所有记录,约隔n/m条取一个数据即可 2.在1类情况下,还 ...
- STM32 内存管理实验
参考原文<STM32F1开发指南> 内存管理简介 内存管理,是指软件运行时对计算机内存资源的分配和使用的技术.最主要的目的是如何高效.快速的分配,并且在适当的时候释放和回收内存资源.内存管 ...
- 2.8 补充:export
linux export 的作用 功能说明:设置或显示环境变量. 语 法:export [-fnp][变量名称]=[变量设置值] 补充说明:在shell中执行程序时,shell会提供一组环 ...
- 【Codeforces 372A】Counting Kangaroos is Fun
[链接] 我是链接,点我呀:) [题意] 如果a[i]*2<=a[j]那么i袋鼠可以装进j袋鼠里面 每只袋鼠都只能装一只袋鼠 [题解] 假设最后的方案是(ai,bi) 这里(ai,bi)表示下标 ...