常用的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

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

 

posted @ 2016-12-14 15:29  BigBao的博客  阅读(307)  评论(0编辑  收藏  举报