shell脚本之发布

  
 <代码> # !/bin/bash
  路径=/应用程序/jdk/bin:/应用程序/jdk/jre/bin:/usr/地方/sbin:/usr/地方/bin:/usr/sbin:/usr/bin:/根/bin
  远程=/home/qroot/shangxian
  LOCAL_HOST=/home/qroot/shangxian
  LOG_CDATE='日期”+ Y % - % - % d”的
  LOG_CTIME='日期”+ H %: % M: % S”的
  
  CDATE=$(日期”+ Y % - % - % d”)
  CTIME=$(日期”+ % H - % - % S”)
  
  SHELL_NAME=" deployment_bigdata.sh "
  SHELL_DIR=?home/qroot”
  SHELL_LOG=" $ {SHELL_DIR}/$ {SHELL_NAME} . log”
  
  LOCK_FILE="/tmp/deploy_bigdata.lock "
  
  # mkdir - p/home/qroot/shangxian/bigdata/{new_word old_word, tmp、正式、配置/{nginx,取代}}
  
  使用(){
  回声”用法:$ 0岁{bigdata [bigdata.tar.gz] | 10.28.53。{192223}]}”
  }
  
  shell_lock () {
  触摸LOCK_FILE美元
  }
  
  shell_unlock () {
  rm - f LOCK_FILE美元
  }
  
  writelog () {
  LOGINFO=1美元
  回声“$ {LOG_CDATE} $ {LOG_CTIME}: $ {SHELL_NAME}: $ {LOGINFO} "> $ {SHELL_LOG}
  }
  
  tq_tomcat_docker () {
  sudo sh - x/应用程序/tomcat/bin/shutdown.sh
  PD_1=$ (sudo ps ef | grep的tomcat/bin/应用程序/| grep - v的grep | wc - l)
  睡眠30
  如果($ {PD_1} gt 0]
  然后
  PID_1=$ (sudo ps ef | grep的tomcat/bin/应用程序/| grep - v的grep | awk的NR==1{打印$ 2}’)
  sudo kill - 9 $ {PID_1}
  fi
  睡5
  
  sudo mkdir - p/应用程序/tomcat/old_logs/logs_ $ {CDATE}
  sudo mv/应用程序/tomcat/日志/*/应用程序/tomcat/old_logs/logs_ $ {CDATE}/cd/应用程序/tomcat/工作/卡特琳娜/& & sudo的rm - fr *
  sudo su - tomcat - c“sh/应用程序/tomcat/bin/startup.sh”
  }
  
  docker_bigdata_scp () {
  writelog“docker_bigdata_scp”
  [!- d $ {LOCAL_HOST}/bigdata new_word] & & echo " $ {LOCAL_HOST}/bigdata new_word——-bucunzai”& &出口16
  如果[- f " $ {LOCAL_HOST}/bigdata/new_word/$ {1} ")
  然后
  echo " $ ls ($ {LOCAL_HOST}/bigdata/new_word/$ {1})”
  
  mv $ {LOCAL_HOST}/bigdata/new_word/$ {1} $ {LOCAL_HOST}/bigdata/new_word/bigdata_“CDATE美元”——$ {CTIME}。战争| |退出16
  如果[- f " $ {LOCAL_HOST}/bigdata new_word/bigdata_”$ CDATE”——$ {CTIME}。战争”)
  然后
  echo " $ ls ($ {LOCAL_HOST}/bigdata/new_word/bigdata_“CDATE美元”——$ {CTIME} . war)”
  其他的
  echo $ CDATE“bigdata_ - $ {CTIME}。战争——文件不存在“& &退出11
  fi
  其他的
  echo " ${1}——文件不存在“& &出口10
  fi
  }
  
  docker_bigdata_tar () {
  writelog“docker_bigdata_tar”
  PD_1=$ (ls ${远程}/bigdata/new_word/bigdata_“CDATE美元”——$ {CTIME}。战争2>/dev/null | wc - l)
  如果($ {PD_1} - ne 0]
  然后
  cd/应用程序/tomcat/web_tmp/& & sudo的rm - fr *
  sudo解压$ {LOCAL_HOST}/bigdata/new_word/bigdata_“CDATE美元”——$ {CTIME}。战争- d/应用程序/tomcat/web_tmp/bigdata_“CDATE美元”——$ {CTIME}
  mv ${远程}/bigdata/new_word/bigdata_“CDATE美元”——$ {CTIME}。战争${远程}/bigdata/old_word/cd ${远程}/bigdata/new_word/& & sudo的rm - fr *
  cd/应用程序/tomcat/webapps/& & sudo的rm - fr *
  sudo ln - s/应用程序/tomcat/web_tmp/bigdata_“CDATE美元”——$ {CTIME}/应用程序/tomcat/webapps/bigdata_new
  sudo chmod - r + x/应用程序/tomcat/webapps/bigdata_new/*
  sudo乔恩- r tomcat。tomcat/应用程序/tomcat
  sudo乔恩- r tomcat。tomcat/应用程序/tomcat/*
  sudo chmod - r + x/应用程序/tomcat/webapps/bigdata/web - inf/classes/com/*
  其他的
  echo $ {1} -bigdata_“CDATE美元”——$ {CTIME}。战争,文件不存在& &出口12
  fi
  }
  
  replace_config () {
  writelog“配置”
  PD_2=$ ls(${远程}/bigdata/config/替换/bigdata/* 2>/dev/null | wc - l)
  如果($ {PD_2} gt 0]
  然后
  sudo \ cp ${远程}/bigdata/config/替换/bigdata/*/应用程序/tomcat/webapps/bigdata_new/web - inf/classes/config/db/其他的
  回声”取代美元===(ls ${远程}/bigdata/config/替换/* 2>/dev/null | wc - l)”
  fi
  }
  
  huizong () {
  如果(LOCK_FILE美元- f);
  回声“部署运行”& &退出;
  fi
  TAR_NAME=$ {2}
  例=$ {1}
  “$ {}”
  bigdata)
  shell_lock
  docker_bigdata_scp $ {TAR_NAME}
  睡眠10
  docker_bigdata_tar
  睡眠10
  replace_config
  睡眠10
  tq_tomcat_docker
  shell_unlock
  ;;
  *)
  使用
  退出3
  esac
  }
  
  面(){
  CMD_1=1美元
  CMD_2=2美元
  huizong CMD_1 CMD_2美元
  }
  
  面{1}{2}美元
  

shell脚本之发布