常用的shell脚本
[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脚本的更多相关文章
- 【转】常用的shell脚本
from:http://blog.sina.com.cn/s/blog_4152a9f501013r6c.html 常用的shell脚本 (2012-10-10 22:09:07) 转载▼ 标签: 杂 ...
- Linux Shell 高级编程技巧4----几个常用的shell脚本例子
4.几个常用的shell脚本例子 4.0.在写脚本(同样适用在编程的时候),最好写好完善的注释 4.1.kill_processes.sh(一个杀死进程的脚本) #!/bin/bash c ...
- 常用linux shell脚本记录
遍历目录下所有的文件是目录还是文件 for file in ./* do if test -f $file then echo $file 是文件 fi if test -d $file then e ...
- 常用的shell脚本(安全方向)
更多shell脚本参考:https://blog.51cto.com/zero01/2046242 1.拒绝密码撞库攻击的ip shell脚本:实现对登录主机失败10次以上的ip进行拒绝登录 #! / ...
- 程序猿的日常——工作中常用的Shell脚本
工作当中总是会有很多常用的linux或者命令,这里就做一个总结 文件远程拷贝 如果想把文件从本机拷贝到远程,或者从远程下载文件到本地. # 把本地的jar拷贝到远程机器xxxip的/home/sour ...
- 18个一线工作中常用的Shell脚本
1.检测两台服务器指定目录下的文件一致性 #!/bin/bash ###################################### 检测两台服务器指定目录下的文件一致性 ######### ...
- 10个实战及面试常用Linux Shell脚本编写
来自:http://blog.51cto.com/lizhenliang/1929044 注意事项 1)开头加解释器:#!/bin/bash 2)语法缩进,使用四个空格:多加注释说明. 3)命名建议规 ...
- 9个常用的Shell脚本
1.Dos 攻击防范(自动屏蔽攻击 IP) #!/bin/bash DATE=$(date +%d/%b/%Y:%H:%M) LOG_FILE=/usr/local/nginx/logs/demo2. ...
- spring boot 以jar的方式启动常用shell脚本
用spring boot框架做的项目,将第三方包全部打在jar里面,通过shell脚本启动和停止服务,常用的shell脚本模板如下: #!/bin/bashJAVA_OPTIONS_INITIAL=- ...
随机推荐
- C#开发微信门户及应用(3)--文本消息和图文消息的应答
微信应用如火如荼,很多公司都希望搭上信息快车,这个是一个商机,也是一个技术的方向,因此,有空研究下.学习下微信的相关开发,也就成为计划的安排事情之一了.本系列文章希望从一个循序渐进的角度上,全面介绍微 ...
- linux grep命令
linux grep命令1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expressio ...
- JavaScript 字符串操作
JavaScript 字符串用于存储和处理文本.因此在编写 JS 代码之时她总如影随形,在你处理用户的输入数据的时候,在读取或设置 DOM 对象的属性时,在操作 Cookie 时,在转换各种不同 Da ...
- dagride实现模糊查询
一:首行放置搜索元素(可以是easyui中的input.datetimebox.combox等等) 将各个元素的value值获取到存为Json格式(data{a:..,b:..,c:..}),再回车或 ...
- JS正则表达式(JavaScript regular expression)
RegExp直接量和对象的创建 就像字符串和数字一样,程序中每个取值相同的原始类型直接量均表示相同的值,这是显而易见的.程序运行时每次遇到对象直接量(初始化表达式)诸如{}和[]的时候都会创建新对象. ...
- ArcGIS Engine开发之鹰眼视图
鹰眼是GIS软件的必备功能之一.它是一个MapControl控件,主要用来表示数据视图中的地理范围在全图中的位置. 鹰眼一般具有的功能: 1)鹰眼视图与数据视图的地理范围保持同步. 2)数据视图的当前 ...
- 用block做事件回调来简化代码,提高开发效率
我们在自定义view的时候,通常要考虑view的封装复用,所以如何把view的事件回调给Controller就是个需要好好考虑的问题, 一般来说,可选的方式主要有target-action和de ...
- JAVA NIO Channel
Basic: 多数通道都是链接到开发的文件描述符的.Channel类提供维持平台独立性的抽象过程. 通道是一种途径,访问和操作操作系统,缓冲区是数据操作点: Channel类继承结构图: 通过 ...
- VMware的三种网络连接方式区别
关于VMware的三种网络连接方式,NAT,Bridged,Host-Only ,在刚接触的时候通常会遇到主机Ping不通虚拟机而虚拟机能Ping得通主机:主机与虚拟机互不相通等等网络问题.本文就这三 ...
- 0035 Java学习笔记-注解
什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...