linux发布环境初始化脚本
#参数配置
homeDir=$(pwd)
tomcatDir=$homeDir/tomcat
logDir=$homeDir/tomcat/logs
backUpDir=$homeDir/backup
warBackDir=$homeDir/backup/warBack
pidDir=$homeDir/pid
scriptDir=$homeDir/sh/script
configDir=$homeDir/sh/config
serverName=test
#创建目录 tomcat backup pid logs sh/script sh/config
mkdir -p $tomcatDir $logDir $backUpDir $warBackDir $pidDir
mkdir -p $scriptDir $configDir
#创建用户组,用户
groupadd tomcat
useradd -g tomcat -d $tomcatDir tomcat
#创建启动脚本
if [ -f $scriptDir/start.sh ]; then
rm -rf $scriptDir/start.sh
else
echo 创建文件$scriptDir/start.sh
touch $scriptDir/start.sh
fi
cat >$scriptDir/start.sh<< !
echo 启动服务$serverName
sh $tomcatDir/tomcat-$serverName/bin/startup.sh
!
#创建停止脚本
if [ -f $scriptDir/shutdown.sh ]; then
rm -rf $scriptDir/shutdown.sh
else
echo 创建文件$scriptDir/shutdown.sh
touch $scriptDir/shutdown.sh
fi
cat >$scriptDir/shutdown.sh<< !
echo 停止服务$serverName
kill -9 \`cat $pidDir/$serverName.pid\`
!
#创建发布脚本
if [ -f $scriptDir/publish.sh ]; then
rm -rf $scriptDir/publish.sh
else
echo 创建文件$scriptDir/publish.sh
touch $scriptDir/publish.sh
fi
#
cat >$scriptDir/publish.sh<< !
#!/bin/sh
backDir=$backUpDir
configDir=$configDir
tomcatDir=$tomcatDir
warBackDir=$warBackDir
scriptDir=$scriptDir
currentTime=\`date +%Y%m%d%H%M%S\`
#停止tomcat
sh \$scriptDir/shutdown.sh $serverName
#清除webapps
rm -rf \$tomcatDir/webapps/*
#清除日志
rm -rf \$tomcatDir/logs/*
#解压war包
unzip \$backDir/Bonade-Contract-Service.war -d \$tomcatDir/webapps/Bonade-Contract-Service
unzip \$backDir/Bonade-Contract-Web.war -d \$tomcatDir/webapps/Bonade-Contract-Web
#创建目录
mkdir \$tomcatDir/webapps/Bonade-Contract-Web/WEB-INF/classes/config
#复制配置
\cp -rf \$configDir/system.properties \$tomcatDir/webapps/Bonade-Contract-Service/WEB-INF/classes/config
\cp -rf \$configDir/jdbc.properties \$tomcatDir/webapps/Bonade-Contract-Service/WEB-INF/classes/config
\cp -rf \$configDir/system.properties \$tomcatDir/webapps/Bonade-Contract-Web/WEB-INF/classes/config
\cp -rf \$configDir/contract-web.xml \$tomcatDir/webapps/Bonade-Contract-Web/WEB-INF/web.xml
#备份包
mv \$backDir/Bonade-Contract-Service.war \$warBackDir/"Bonade-Contract-Service_\$currentTime".war
mv \$backDir/Bonade-Contract-Web.war \$warBackDir/"Bonade-Contract-Web_\$currentTime".war
#启动服务
\$scriptDir/start.sh $serverName
!
#文件授权
chown -R tomcat:tomcat $tomcatDir
chown -R tomcat:tomcat $backUpDir
chown -R tomcat:tomcat $pidDir
chown -R tomcat:tomcat $homeDir/sh
chown -R tomcat:tomcat $logDir
echo script execute complete
然后
设置密码
passwd tomcat
设置tomcat jdk pid 配置文件
linux发布环境初始化脚本的更多相关文章
- liunx用户环境初始化脚本
liunx用户环境初始化脚本 编写生成脚本基本格式,包括作者,联系方式,版本,时间,描述等 [root@magedu ~]# vim .vimrc set ignorecase set c ...
- Linux初始化脚本
以下脚本用于linux系统的初始化脚本,可以在服务器系统安装完毕之后立即执行.脚本结合各位大牛一些参数,已经在CentOS 5下通过. 使用方法:将其复制,保存为一个shell文件,比如init.sh ...
- kali linux Python开发环境初始化
kali linux Python 黑客编程1 开发环境初始化 为什么要选择Python? Python作为目前Linux系统下最流行的编程语言之一,对于安全工作者的作用可以和C++相提并论.Pyth ...
- ASP.NET Core 发布至Linux生产环境 Ubuntu 系统
ASP.NET Core 发布至Linux生产环境 Ubuntu 系统,之前跟大家讲解了 dotnet publish 发布,而没有将整个系统串起来. 今天就跟大家综合的讲一下ASP.NET Core ...
- 发布ASP.NET Core程序到Linux生产环境
原文翻译:Publish to a Linux Production Environment 作者:Sourabh Shirhatti 在这篇文章里我们将介绍如何在 Ubuntu 14.04 Serv ...
- linux系统最小化安装后的初始化脚本
作为运维人员,经常会初始化系统,系统在安装过程中基本都会选择最小化安装,这样安装好的系统里会缺少很多环境. 下面分享一个系统安装后的初始化脚本: #!/bin/bash #系统时最小化安装的,这里要安 ...
- 【linux】系统初始化的shell脚本
根据参考网上的一些文章,总结出来一个系统初始化的shell脚本 1.初始化脚本 #!/bin/bash cat << EOF +------------------------------ ...
- Linux中环境变量中文件执行顺序
Linux 的变量可分为两类:环境变量和本地变量 环境变量:或者称为全局变量,存在于所有的shell 中,在你登陆系统的时候就已经有了相应的系统定义的环境变量了.Linux 的环境变量具有 ...
- Cygwin--unix/linux模拟环境
Cygwin是一个在windows平台上运行的类UNIX模拟环境,是cygnus solutions公司开发的自由软件(该公司开发了很多有用的工具,著名的还有eCos,不过现已被Redhat收购).它 ...
随机推荐
- ACM:日历本
题目描述 我们经常需要使用日历,所以需要一个能生成日历的程序. 先要求你写一个程序,只需要输入年份,就能生成正确的日历. 输入 输入包含多组测试数据.每组输入一个整数Y(1800<=Y<= ...
- 4 - BFS & Topological Algorithm
615. Course Schedule https://www.lintcode.com/problem/course-schedule/description?_from=ladder&& ...
- js-对象的重要概念
抽象 抽象是通过特定的实例抽取共同特征以后形成概念的过程.它强调主要特征,忽略次要特征.一个对象是现实世界中一个实体的抽象. 对象三个特性 1.封装 把客观事物封装成抽象的类,隐藏属性和方法的实现细节 ...
- ASP.NET MVC CSRF (XSRF) security
CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站 ...
- 使用npm私有服务器保存公司内部强业务类型组件(三):关于业务性组件的一点思考
编写业务性组件最难的地方不在于技术,而在于沟通, 1:前端将业务给封装了起来,必然导致产品在设计的时候多了一层考虑,在新增功能的时候 他要考虑这个功能是不是在其他项目也需要,如果不是的话,就不应该放在 ...
- Flutter采坑之路 用真机跑起来的时候提示 initGradle失败,IO异常,downloading Gradle-4.6-all.zip失败
这个异常就是Gradle下载异常,进而下面会提示一行IO异常 我这里的原因就是Gradle对应的4.6-all版本下载不下来(一般情况下确实很难下载下来) 所以在正常AS工程呢,我们选择一下Gradl ...
- linux 每天一点点 【ubuntu16.04 】
1.查看防火墙状态 sudo ufw status [非root用户需要sudo] inactive状态是防火墙关闭状态 active是开启状态 2.查看CentOS版本信息 cat /etc ...
- dedecmsV5.7织梦后台更新文章,发布时间不自动更新
问题:dedecmsV5.7后台修改文章的时候,会更新发布时间,需求是不自动更新时间,还是当时的发布时间 解决: 1.修改后台文件夹/templets/archives_edit.htm,articl ...
- 字符串sorted,和sort区别
s=["a","s","b"] s.sort() print(s) ['a', 'b', 's'] s=["a",&qu ...
- Vue.js错误: Maximum call stack size exceeded
这几天正自学Vue, 用eggjs + vue 采用前后分离,写一个网站练练手. 增加了一个商品详情页 Detail.vue的时候,点击进入Detail.vue的时候,页面显示空白,打开浏览器调试工具 ...