常用的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=- ...
随机推荐
- IL接口和类的属性
上一篇文章学习了IL的入门,接下来我们再通过两个例子来了解下类的属性.构造函数以及接口的使用 一.类的属性.构造函数 1.先看下我们要构建的类的C#代码,然后再进行IL的实现,示例代码如下: [Ser ...
- VMware12下安装Debian8.5
参考: Debian 8.2.0 (Jessie) 快速纯净安装教程 Debian 7 安装配置总结 Debian 7.8 系统安装配置过程 软件包管理命令 包命令 从源代码 ...
- C/C++ Memory Layout
参考 http://www.cnblogs.com/skynet/archive/2011/03/07/1975479.html
- 【挖财工作笔记】idea使用指南
一 安装破解 破解选择服务器,然后选择地址:http://www.iteblog.com/idea/key.php http://idea.iteblog.com/key.php http://i ...
- php实现设计模式之 状态模式
<?php /*状态模式:允许一个对象在其内部状态改变时改变它的行为.对象看起来似乎修改了它的类.(行为模式) * * 在很多情况下,一个对象的行为取决于一个或多个动态变化的属性,这样的属性叫做 ...
- 异常:java.lang.LinkageError: loader constraint violation: when resolving interface method
异常:java.lang.LinkageError: loader constraint violation: when resolving interface method "javax. ...
- spider RPC插件化体系
为了满足灵活扩展的需要,spider支持灵活的自定义插件扩展,从功能上来说,插件和过滤器的差别在于过滤器不会阻止请求的执行同时对于主程序不会有API上的影响(比如servlet 过滤器和监听器)(最多 ...
- java 正则匹配括号对以及其他成对出现的模式
最近,我们有个大调整,为了控制代码的质量,需要使用一些伪代码让业务人员编写应用逻辑(其实这么做完全是处于研发效能的考虑,95%以上的代码不需要特别注意都不会导致系统性风险,),然后通过工具自动生成实际 ...
- JDBC关于时间的存取
Oracle数据库默认时间存储是java.sql.date,而java程序中的时间默认是java.util.date,所以通过JDBC存取的 时候会涉及到时间的转换问题. 1.日期存取 存入数据库的时 ...
- HTML的doctype和编码
DOCTYPE Doctype是为了告诉浏览器用哪种版本的html去解析指令,必须位于第一行,在某些版本中需要引入DTD,html5无需引入DTD 中文乱码 原因 浏览器解析代码的编码格式与源代码编码 ...