常用的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=- ...
随机推荐
- 关于 .NET Core 动态链接库的开发
上个月月底,VS2017RC版发布了,一个很大的特点就是将原来的xProj文件又改回了csproj了. 这样一改,其实很多新的问题也暴露出来了,最严重的问题就是Net版本兼容性. 原来的Net体系大致 ...
- nginx反向代理下thinkphp、php获取不到正确的外网ip
在记录用户发送短信需要获取用户ip时,tp一直获取的是内网ip:10.10.10.10 tp框架获取ip方法:get_client_ip /** * 获取客户端IP地址 * @param intege ...
- 三个linux系统共存,修改默认启动
一个mint,一个ubuntu,想要默认启动ubuntu,那么咱们这么来:修改启动顺序,我们需要修改Ubuntu的GRUB配置文件.使用常见的编辑程序如"gedit"就可以很方便 ...
- 物联网框架SuperIO 2.2.9和ServerSuperIO 2.1同时更新,更适用于类似西门子s7-200发送多次数据,才能读取数据的情况
一.解决方案 二.更新内容 1.修改IRunDevice接口,把void Send(io,bytes)改成int Send(io,bytes).2.修改网络控制器,发送数据不直接使用IO实例,改为使用 ...
- 每天一个设计模式-4 单例模式(Singleton)
每天一个设计模式-4 单例模式(Singleton) 1.实际生活的例子 有一天,你的自行车的某个螺丝钉松了,修车铺离你家比较远,而附近的五金店有卖扳手:因此,你决定去五金店买一个扳手,自己把螺丝钉固 ...
- Android 手机卫士1--实现splash页面
1.minSdkVersion.targetSdkVersion.maxSdkVersion.target API level四个数值到底有什么区别? minSdkVersion, maxSdkVer ...
- 关于css3的背景渐变
关于css3的渐变,目前各大浏览器还未做到很好的支持,所以需要在我们使用时加上各大浏览器前缀. -moz-:使用Mozilla内核的浏览器(Firefox浏览器) -webkit-:使用Webkit内 ...
- mac maven
下载Maven 下载地址 : https://maven.apache.org/download.cgi 解压zip包到指定目录 例如: /Users/Walid/Desktop/develop/to ...
- Entity Framework之IQueryable和list本地集合
我们来说一下Iqueryable集合和List等本地集合的区别,下面我们通过建立一个简单的例子来学习这个知识点,直接进入主题吧 1.首先对比一下两段代码?看一下有什么结果: (1) 第一段代码如图所示 ...
- yii2权限控制rbac之rule详细讲解
作者:白狼 出处:http://www.manks.top/yii2_rbac_rule.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留 ...