[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. ASP.NET MVC搭建项目后台UI框架—11、自动加载下拉框查询

    ASP.NET MVC搭建项目后台UI框架—1.后台主框架 需求:在查询记录的时候,输入第一个字,就自动把以这个字开头的相关记录查找出来,输入2个字就过滤以这两个子开头的记录,依次类推. 突然要用到这 ...

  2. 每天一个设计模式-3 适配器模式(Adapteer)

    每天一个设计模式-3 适配器模式(Adapteer) 1.现实中的情况 旧式电脑的硬盘是串口的,直接与硬盘连接,新硬盘是并口的,显然新硬盘不能直接连在电脑上,于是就有了转接线.好了,今天的学习主题出来 ...

  3. 整理UIImagePickerController问题

    [assetsLibrary addAssetsGroupAlbumWithName:@"iOSDevTip1" resultBlock:^(ALAssetsGroup *grou ...

  4. ARCGIS SDE空间化处理

    在 Oracle 中,ST_Geometry 和 ST_Raster 的 SQL 函数使用通过 Oracle 的外部过程代理(即 extproc)访问的共享库.要将 SQL 和 ST_Geometry ...

  5. Splash页面跳转主页面,去掉主页面标题栏

    requestWindowFeature(Window.FEATURE_NO_TITLE); // 去除标题,必须在setContentView之前调用

  6. 《简单的自定义DropDatePicker》-- UIPopoverController 和 代理 以及 Block 实现。

    最近做项目为了方便项目使用,自定义的空间 写的比较粗糙.欢迎大家批评指正.以上为在项目中的实际应用 // DropDownDatePicker.h // DropDownDatePickerDemo ...

  7. 安开发卓之Notification(一)代码直接能用

    Notification是Android中很理想的一种显示提示信息的方法,它可以将应用程序的信息传递到我们的Android桌面状态栏,采用这种消息传递方式不会影响到用户对手机的正常使用.而且Notif ...

  8. iOS系列 基础篇 07 Action动作和输出口

    iOS系列 基础篇 07 Action动作和输出口 目录:  1. 前言及案例说明 2. 什么是动作? 3. 什么是输出口? 4. 实战 5. 结尾 1. 前言及案例说明 上篇内容我们学习了标签和按钮 ...

  9. JS框架

    s框架就是将常用的方法进行封装,方便调取使用.一个框架是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计.协作构件之间的依赖关系.责任分配和控制流程,表现为一组抽象类以及其实例之间协作的方 ...

  10. SQL中几个常用的排序函数

         最近使用窗口函数的频率越来越高,这里打算简单介绍一下几个排序的函数,做一个引子希望以后这方面的问题能够更深入的理解,这里先简单介绍一下几个简单的排序函数及其相关子句,这里先从什么是排序开始吧 ...