如何在亚马逊服务器部署项目,[Amazon]使用Shell脚本一键部署项目

脚本应用的环境

Amazon服务器

Docker容器

SSH

Shell脚本文件作用

项目部署到了Amazon的Ubuntu中的Docker容器中,Docker容器和宿主机之间建立了一个挂载目录/opt/software/upload/xx/,目录中放待部署的程序代码,上传完代码后在Docker容器中执行sh /bin/xxx.sh即可实现自动部署后查看项目日志

#! / bin/sh

# Author : zhyd

# Script follows here:

# 声明变量:Mount the directory挂载目录,此处放置待部署的程序代码压缩文件

mountTheDirectory="/opt/software/upload/xx/xx.zip"

# Web site root directory 网站根目录

webSiteRootDirectory="/var/www/xx/"

# tomcat地址

tomcatRootPath="/xx/x/tomcat7"

# 输出当前日期

nowDate=$(date +%c)

echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"

echo "当前系统时间:${nowDate}"

echo "待部署文件地址:${mountTheDirectory}"

echo "网站根目录地址:${webSiteRootDirectory}"

echo "tomcat地址:${tomcatRootPath}"

echo "确定上方信息正确?确认继续执行[y/n]"

read CONFIRM

# 判断字符串。[-o 或 ,-a 与,! 非]

if [ $CONFIRM = "y" -o $CONFIRM = "Y" ];then

# [ -f FILE ] 如果 FILE 存在且是一个普通文件则为真

if [ -f $mountTheDirectory ]; then

echo "文件存在!开始部署"

# 将挂载目录中待部署的程序压缩包移动到网站根目录下

mv ${mountTheDirectory} ${webSiteRootDirectory}

# 解压程序包

unzip -d ${webSiteRootDirectory} -o ${webSiteRootDirectory}xx.zip

# 关闭tomcat

echo "停止tomcat..."

# 用 ` 号将需要获取输出的操作括起来,并赋值给一个变量,则 Shell 会在等待命令执行完成后

# 把输出内容用于赋值。实现等待命令执行完成的效果

output=`sh ${tomcatRootPath}/bin/shutdown.sh`

echo $output

#启动tomcat

echo "启动tomcat..."

output=`sh ${tomcatRootPath}/bin/startup.sh`

echo $output

# 查看tomcat日志

tail -f ${tomcatRootPath}/logs/catalina.out

else

echo "文件不存在:${mountTheDirectory}"

echo "exit!"

fi

else

echo "exit!"

fi

echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"

我可以对一个人无限的好,前提是值得。 ——慕冬雪

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值