[root@WEB1-live sh]# cat licai_fabu.sh
#!/bin/bash
pid=` ps -ef | grep java | grep '8011' | awk '{print $2}'`
bak_date=`date +%y%m%d%H%M`
JAVA_RUN="/usr/bin/java "
pak_dir=/data/pro_fabu/front
target_dir=/data/java_web_app/licai_live
if [ -d ${target_dir} ];then
echo "dir have exist"
cp -rf ${target_dir}/webapps/root.war /data/bak_project/front/root_${bak_date}.war
else
echo "*****************************"
echo "从jetty拷贝内容到目标目录下 "
echo "*****************************"
mkdir ${target_dir}
cp -r /data/jetty/* ${target_dir}
fi
kill -9 ${pid}
cp -rf ${pak_dir}/*.war ${target_dir}/webapps/root.war
cd ${target_dir}
#/usr/bin/java -jar start.jar jetty.port=6011 -DSTOP.PORT=7011 -DSTOP.KEY=bao_licai
cd ${target_dir}
output="CONSOLE"
nohup ${JAVA_RUN} -jar start.jar -DSTOP.PORT=9011 -DSTOP.KEY=licai_live --stop >$output 2>&1 &
nohup ${JAVA_RUN} -jar start.jar jetty.port=8011 -DSTOP.PORT=9011 -DSTOP.KEY=licai_live >$output 2>&1 &
echo $?
tail -10 $output
/bin/sh /root/sh/scp_licai_war.sh
[root@WEB1-live sh]# cat scp_licai_war.sh
#!/usr/bin/expect
set ip 10.1.90.2
set pass Weddddu0.5
set timeout 30
#spawn ssh root@$ip
spawn scp /data/pro_fabu/front/kzfinance-front.war root@10.1.90.2:/data/pro_fabu/front
expect {
"(yes/no)" {send "yes\r"; exp_continue}
"password:" {send "$pass\r"}
}
#expect "root@*" {send "df -h\r"}
#expect "root@*" {send "exit\r"}
#expect eof
spawn ssh root@$ip
expect {
"(yes/no)" {send "yes\r"; exp_continue}
"password:" {send "$pass\r"}
}
expect "root@*" {send "/bin/sh /root/sh/start_front.sh\r"}
expect "root@*" {send "exit\r"}
expect eof
[root@WEB2-live sh]# cat start_front.sh
#!/bin/bash
pid=` ps -ef | grep java | grep '8011' | awk '{print $2}'`
bak_date=`date +%y%m%d%H%M`
JAVA_RUN="/usr/bin/java "
pak_dir=/data/pro_fabu/front
target_dir=/data/java_web_app/licai_live
if [ -d ${target_dir} ];then
echo "dir have exist"
cp -rf ${target_dir}/webapps/root.war /data/bak_project/front/root_${bak_date}.war
else
echo "*****************************"
echo "从jetty拷贝内容到目标目录下 "
echo "*****************************"
mkdir ${target_dir}
cp -r /data/jetty/* ${target_dir}
fi
kill -9 ${pid}
cp -rf ${pak_dir}/*.war ${target_dir}/webapps/root.war
cd ${target_dir}
#/usr/bin/java -jar start.jar jetty.port=6011 -DSTOP.PORT=7011 -DSTOP.KEY=bao_licai
cd ${target_dir}
output="CONSOLE"
nohup ${JAVA_RUN} -jar start.jar -DSTOP.PORT=9011 -DSTOP.KEY=licai_live --stop >>$output 2>&1 &
nohup ${JAVA_RUN} -jar start.jar jetty.port=8011 -DSTOP.PORT=9011 -DSTOP.KEY=licai_live >>$output 2>&1 &
echo $?
tail -10 $output

上面的脚本有点复杂,但是上面的脚本都是我使用jenkins需要用到的

下面记录一下以为大神写的发版脚本

[root@SVN-200-15 build]# cat build_live_licai.sh
#!/bin/sh
#项目打包发布脚本
#create by zgh 2016-3-2
#目标ip 12.9.15.28\12.9.15.29
usage()
{
echo "Usage: cp-jetty.sh dir skip_mvn skip_svn build_or_restart"
exit 1
}
if [ $# -eq 0 ];
then
usage
fi
DISTIBUTE_DIR="/home/build/" ACTION=$1
SKIP_MVN="true"
SKIP_SVN="true"
BUILD_OR_RESTART="true" #BUILD
if [ $# -gt 1 ] && [ $2 = "false" ]; then
SKIP_MVN="false"
fi if [ $# -gt 2 ] && [ $3 = "false" ]; then
SKIP_SVN="false"
fi if [ $# -gt 3 ] && [ $4 = "false" ]; then
BUILD_OR_RESTART="false" #RESTART
fi #mkdir2(){
# local dir=$1
# local rip=$2
# ssh $ip -l root "
# if [ -d /home/java_web_app/$dir ]; then
# echo \"dir have exist\"
# else
# echo \"make a java dir $dir on $rip\"
# cp -r /home/jetty/. /home/java_web_app/$dir
# fi
# exit
# "
#} copy2(){
local ip=$1
local dir=$2
local pk=$3
local app=$4
local user=$5
local path=$6
ssh $ip -l root "
if [ -d /data/java_web_app/$dir ]; then
echo \"dir have exist\"
else
echo \"make a java dir $dir on $rip\"
cp -r /data/jetty/. /data/java_web_app/$dir
fi
exit
"
echo "scp $pk to $ip : $dir/webapps/$app"
scp $pk $user@$ip:$path/$dir/webapps/$app
} restart2(){
local ip=$1
local dir=$2
local port=$3
local stop=$4
local user=$5
local path=$6 echo "restart jetty $ip $dir"
echo "$path/jetty-stop.sh $dir $port $stop 2>/dev/null"
echo "$path/jetty-start.sh $dir $port $stop 2>/dev/null"
ssh $ip -l $user "
$path/jetty-stop.sh $dir $port $stop
for pid in \$(ps -ef|grep \"jetty.port=$port\" | grep -v \"grep\"|awk '{print \$2}'); do
echo \"kill,jetty:\$pid\"
kill -9 \$pid
done
$path/jetty-start.sh $dir $port $stop "
echo "http://$ip:$port/" } copyRestart2(){
local ip=$1
local dir=$2
local port=$3
local stop=$4
local source=$5
local target=$6
copy2 $ip $dir $source $target root /data/java_web_app
restart2 $ip $dir $port $stop root /data/java_web_app
} m_mvn(){
if [ $SKIP_MVN = 'true' ]; then
mvn clean install -Dmaven.test.skip=true -U -Pproduct
fi
} m_svn(){
if [ $SKIP_SVN = 'true' ]; then
svn co http://10.23.20.15/svn/finance/kzfinance-front/trunk $DISTIBUTE_DIR$ACTION --username=deploy
#svn update -r 202 http://10.23.20.15/svn/finance/kzfinance-front/trunk $DISTIBUTE_DIR$ACTION --username=deploy
#svn co http://10.23.20.15/svn/huamu/%E4%BC%97%E7%AD%B9/trunk/kzfinance-front $DISTIBUTE_DIR$ACTION --username=deploy
fi
} m_copy_op(){
local ACTION=$1
cd $DISTIBUTE_DIR
m_svn
cd $ACTION
m_mvn
if [ $BUILD_OR_RESTART = 'true' ]; then
copyRestart2 12.9.15.28 $ACTION 8011 9011 "target/*.war" "root.war";
copyRestart2 12.9.15.29 $ACTION 8011 9011 "target/*.war" "root.war";
else
restart2 12.9.15.28 $ACTION 8011 9011 root /data/java_web_app
restart2 12.9.15.29 $ACTION 8011 9011 root /data/java_web_app
fi } m_copy_op $ACTION exit

上面的这个脚本的前提条件是要配好秘钥

常用的shell脚本的更多相关文章

  1. 【转】常用的shell脚本

    from:http://blog.sina.com.cn/s/blog_4152a9f501013r6c.html 常用的shell脚本 (2012-10-10 22:09:07) 转载▼ 标签: 杂 ...

  2. Linux Shell 高级编程技巧4----几个常用的shell脚本例子

    4.几个常用的shell脚本例子    4.0.在写脚本(同样适用在编程的时候),最好写好完善的注释    4.1.kill_processes.sh(一个杀死进程的脚本) #!/bin/bash c ...

  3. 常用linux shell脚本记录

    遍历目录下所有的文件是目录还是文件 for file in ./* do if test -f $file then echo $file 是文件 fi if test -d $file then e ...

  4. 常用的shell脚本(安全方向)

    更多shell脚本参考:https://blog.51cto.com/zero01/2046242 1.拒绝密码撞库攻击的ip shell脚本:实现对登录主机失败10次以上的ip进行拒绝登录 #! / ...

  5. 程序猿的日常——工作中常用的Shell脚本

    工作当中总是会有很多常用的linux或者命令,这里就做一个总结 文件远程拷贝 如果想把文件从本机拷贝到远程,或者从远程下载文件到本地. # 把本地的jar拷贝到远程机器xxxip的/home/sour ...

  6. 18个一线工作中常用的Shell脚本

    1.检测两台服务器指定目录下的文件一致性 #!/bin/bash ###################################### 检测两台服务器指定目录下的文件一致性 ######### ...

  7. 10个实战及面试常用Linux Shell脚本编写

    来自:http://blog.51cto.com/lizhenliang/1929044 注意事项 1)开头加解释器:#!/bin/bash 2)语法缩进,使用四个空格:多加注释说明. 3)命名建议规 ...

  8. 9个常用的Shell脚本

    1.Dos 攻击防范(自动屏蔽攻击 IP) #!/bin/bash DATE=$(date +%d/%b/%Y:%H:%M) LOG_FILE=/usr/local/nginx/logs/demo2. ...

  9. spring boot 以jar的方式启动常用shell脚本

    用spring boot框架做的项目,将第三方包全部打在jar里面,通过shell脚本启动和停止服务,常用的shell脚本模板如下: #!/bin/bashJAVA_OPTIONS_INITIAL=- ...

随机推荐

  1. FunDA(2)- Streaming Data Operation:流式数据操作

    在上一集的讨论里我们介绍并实现了强类型返回结果行.使用强类型主要的目的是当我们把后端数据库SQL批次操作搬到内存里转变成数据流式按行操作时能更方便.准确.高效地选定数据字段.在上集讨论示范里我们用集合 ...

  2. ABP Zero示例项目登录报错“Empty or invalid anti forgery header token.”问题解决

    ABP Zero项目,登录时出现如图"Empty or invalid anti forgery header token."错误提示的解决方法: 在 WebModule.cs的P ...

  3. Mybatis的基本操作案列增加以及源码的分析(二)

    一.构建一个框架的项目的思路 首先我们先建立一个web项目,我们需要jar,mybatis-config.xml和studentDao.xml的配置随后就是dao.daoimpl.entity.的架构 ...

  4. 兼容当前多浏览器的渐变颜色背景gradient的写法

    经常有一些时候需要使用渐变背景,使用长条图片有点太不高大上了,于是自己写了个小例子,兼容多浏览器就要为每一个浏览器写对应的CSS,太低版本的浏览器只能使用图片做背景. 下面是当前五大浏览器对gradi ...

  5. 深入浅出node(2) 模块机制

    这部分主要总结深入浅出Node.js的第二章 一)CommonJs 1.1CommonJs模块定义 二)Node的模块实现 2.1模块分类 2.2 路径分析和文件定位 2.2.1 路径分析 2.2.2 ...

  6. js 轮播效果

    <!--图片轮播      Start-->                    <div class="pics-ul">               ...

  7. 弹出iframe内嵌页面元素到父页面并全屏化

    (注册博客好久了,一直没舍得添砖加瓦,主要是每次想写点东西的时候,随便搜一搜发现都比我总结的都要好,甚感尴尬,但是总是要开始的,所以这就是我的第一篇博客,也绝不会是最后一篇,废话不多说,直接入正题) ...

  8. 判断终端的js

    $(function(){ var sUserAgent = navigator.userAgent.toLowerCase(); var bIsIpad = sUserAgent.match(/ip ...

  9. CSS选择器的权重与优先规则?

    我们做项目的时候,经常遇到样式层叠问题,被其他的样式覆盖,或者写的权重不高没效果,对权重没有具体的分析,做了一个总结. css继承是从一个元素向其后代元素传递属性值所采用的机制.确定应当向一个元素应用 ...

  10. BI解决方案分享:地产BI数据分析系统的建设

    近几年中国地产行业发展迅猛,行业整合已成大势所趋,逐步由区域开发转变为集团化的跨地区综合开发商.然而,对于处在超常规速度发展的房地产企业来说,其面临的挑战也是超常规的.企业要在有限的资金和人力条件下, ...