【Shell】使用Shell脚本发布项目

第一次写Shell脚本,没经验,是直接写呢,还是要走流程( ̄▽ ̄)~*

-----------------------------------------------------------------------

总的来说分三步,下面跟我一起做

-----------------------------------------------------------------------

第一步:先创建一个文件

touch public.sh

第二步:编写脚本

#!/bin/bash

echo $1

#进入SVN临时目录
cd /tmp/svn/repo/idea
pwd
#删除SVN项目
rm -rf $1
#更新SVN项目
svn co svn://localhost/repo/idea/$1
#复制war包到项目
cp -rf ${1}/target/${1}.war /usr/local/data/$1/tomcat/webapps

#进入tomcat
cd /usr/local/data/$1/tomcat
#停止tomcat
./bin/shutdown.sh
#删除ROOT下文件
rm -rf webapps/ROOT/*
#解压项目war包
unzip -o webapps/$1.war -d webapps/ROOT
#启动tomcat
./bin/startup.sh
#显示tomcat启动信息
tail -f logs/catalina.out

知识点:

1.#!/bin/bash:这句话用来定义使用哪种sh解释器来解释脚本,目前有两种,还有一种时#!/bin/sh。那么这两种方有什么区别呢?

[[email protected] bin]# ll /bin/sh
lrwxrwxrwx 1 root root 4 Mar 22 15:11 /bin/sh -> bash

通过以上可以看到sh一般设成bash的软链, 在一般的linux系统当中(如redhat),使用sh调用执行脚本相当于打开了bash的POSIX标准模式, 也就是说 /bin/sh 相当于 /bin/bash --posix。

2.echo $1:echo用来在街面上打印,$1代表传入的第一个参数

第三步:执行shell脚本

sh publish.sh hospital

课外话题:

1.如果想要向启动tomcal一样使用 ./startup.sh 启动那么需要在执行脚本前,先执行一下命令

chmod +x publish.sh

2.还记得上面的第一行大明湖畔的 #!/bin/bash 吗?如果执行下面这条命令,就可以不要它了

bash public.sh
时间: 2024-08-05 23:17:33

【Shell】使用Shell脚本发布项目的相关文章

Jenkins+Maven+Github+Tomcat+shell实现自动化集成发布

Jenkins+Maven+Github+Tomcat+shell实现自动化集成发布在做这个工作得时候我查了很多网上资料,比较杂乱,最终在一名叫ianjinsong作者得文章中获得启发,还是要感谢这位仁兄!一.环境准备:Jenkins+Tomcat服务器:106.12.93.190(百度云主机,测试Jenkins使用)Tomcat服务器:118.24.137.86 (腾讯云主机,测试发布ZrLog项目专用)Github服务器:https://github.com/longyueyang/test

Shell编程(脚本)的常用命令和语句

一些常用的Shell编程(脚本)命令和语句,可以满足一般需求. 接收到的命令参数: 参数个数: $# 参数值: 命令本身:$0 第一个参数:$1 第二个参数:$2 -- 退出命令: exit echo命令: 换行: echo 输出后不换行: echo -n "请选择(y/n)?" 利用转义符号输出双引号: echo "欢迎使用\"正式服务器\"部署工具." 输出中带变量: echo "即将部署项目:$project_name"

Shell编程(脚本)的经常使用命令和语句

一些经常使用的Shell编程(脚本)命令和语句,能够满足一般需求. 接收到的命令參数: 參数个数: $# 參数值: 命令本身:$0 第一个參数:$1 第二个參数:$2 -- 退出命令: exit echo命令: 换行: echo 输出后不换行: echo -n "请选择(y/n)?" 输出后不换行,并把光标移到最左(以便下次输出覆盖当前行) echo -ne "$i\r" 利用转义符号输出双引號: echo "欢迎使用\"正式server\&qu

什么是Shell?Shell脚本基础知识详细介绍

这篇文章主要介绍了什么是Shell?Shell脚本基础知识介绍,本文是一篇Shell脚本入门文章,在本文你可学到什么是Shell.有多少种Shell.一个Shell脚本代码实例,需要的朋友可以参考下 Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释和执行用户输入的命令:作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支. 它虽然不是Linux系统核心

Java调用Shell命令和脚本,致力于hadoop/spark集群

前言 说明的是,本博文,是在以下的博文基础上,立足于它们,致力于我的大数据领域! http://kongcodecenter.iteye.com/blog/1231177 http://blog.csdn.net/u010376788/article/details/51337312 http://blog.csdn.net/arkblue/article/details/7897396 第一种:普通做法 首先,编号写WordCount.scala程序. 然后,打成jar包,命名为WC.jar.

shell vs python脚本监控http请求

各写一个shell和python脚本来监控http请求,并在服务不可用的时候重启服务. 监控的连接为: http://192.168.1.101:5022/product http://192.168.1.101:5024/module shell脚本如下,配合crontab计划任务每一分钟执行一次检查: #!/bin/bash # This shell is used to moniter 192.168.1.101 port 5022 & 5024 date  #在crontab里用来记录l

Linux Shell 运维脚本功底积累

1.删除Linux远程用户连接会话 [[email protected] logs]# w 10:45:28 up 15 days, 16:23, 4 users, load average: 0.00, 0.00, 0.00 USER TTY FROM [email protected] IDLE JCPU PCPU WHAT root tty1 - Sun21 4days 0.00s 0.00s -bash root pts/0 192.168.1.2 09:11 0.00s 0.07s 0

Shell执行将脚本里的变量打印到指定日志文件

首先需要定位获取任务的运行日志或者报错信息,才能定位问题. 通过shell调用有些脚本的话,日志信息会打印在shell里.不过也有用户在shell里调用正常,但是到crontab调用的时候就出错并且没日志了. 针对这种情况,可以在crontab里把任务执行的输出记录下来,后续出了问题可以到日志文件里获取任务的日志.可以参考:  abc -f xxx.sql >> /home/admin/logs/xxx.log 2>&1  待续...

Shell学习之: 脚本之间的调用

在Java,Python中,可以用import的方式来进行脚本或模块之间调用,例如: >>> import math >>> math.sqrt(4) 2.0 在Shell中要如何调用别的shell脚本,或别的脚本中的变量,函数呢? 方法一:   . ./subscript.sh       方法二:   source ./subscript.sh 注意: 两个点之间,有空格,千万注意. 两个脚本不在同一目录,要用绝对路径 为简单起见,通常用第一种方法 例如: main