`

由一个shell脚本牵起的工作

阅读更多
昨天老大让我写一个shell脚本,实现以下功能:
     1. 自动checkout svn服务器上的project
     2. 自动build/package maven  project_name.war 包
     3. 自动拷贝project_name.war 包到$TOMCAT_HOME/webapps/目录
     4. 自动启动$TOMCAT_HOME/bin/catalina.sh run     

宗旨:一切实现自动化,就是这么简单。

     技术的力量是无穷的。这句话放在这里那简直就是相当的恰当,不过细想一下,有那么简单吗?
     NO,并非那么简单,看了我做的时期,你就知道为啥一个小小的shell脚本会让给你2个工作日。
     首先,你得要访问Liunx服务器的客户端软件(如我最喜欢用的XShell)
    
----后续


shell代码
#!/bin/sh
#auto checkout svn, auto build maven, auto cp project, auto start tomcat
 COMMON_DIR=/var/www/demo/installed
 JAVA_HOME=$COMMON_DIR/jdk1.6.0_20/
 export JAVA_HOME
 TOMCAT_HOME=$COMMON_DIR/apache-tomcat-6.0.26
 M2_HOME=$COMMON_DIR/apache-maven-2.2.1/
 SVN_HOME=/usr/local/svn/
 SVN_SERVER=http://prosvn.shrd.demo.cn/svn/demo/trunk/
 CHECKOUT_FOLDER="demo"`date +%Y%m%d%H%m`
 CURRENT_DIR=/var/www/demo/autobuild

 cd $CURRENT_DIR/checkout/
 mkdir $CHECKOUT_FOLDER

 cd $CHECKOUT_FOLDER/
 svn checkout $SVN_SERVER --username xiaolinjava --password xiaolinjava
 
 cd trunk/
 mvn clean package -DJAVA_HOME=$JAVA_HOME  -Denv.type=dev -Dmaven.test.skip=true

 rm -rf $TOMCAT_HOME/webapps/demo

 cp -R target/demo-1.0-SNAPSHOT $TOMCAT_HOME/webapps/demo/

 $TOMCAT_HOME/bin/catalina.sh stop

 $TOMCAT_HOME/bin/catalina.sh start
 
 echo "start tomcat success!!!" > cd ../../log/log.log
分享到:
评论

相关推荐

    109个shell脚本合集.pdf

    Shell脚本是一种脚本语言,利用Shell的命令解释的功能,对一个纯文本的文件进行解析,然后执行这些功能。 Shell脚本可以直接使用在Windows、Unix、Linux上面,并且可以调用大量系统内部的功能来解释执行程序。如果...

    250个shell脚本

    Shell脚本是Linux/Unix操作系统中的强大工具,它允许用户编写一系列命令,形成自动化任务,以提高工作效率。本文档收集了250个实用的Shell脚本实例,涵盖了多个应用场景,包括系统管理、安全防护、数据库备份等核心...

    LinuxShell脚本学习基础视频

    资源名称:Linux Shell脚本学习基础视频资源目录:【】11a00d99b60c4e2eba3440b8aa3a6bdd【】linux_shell脚本编程_01认识shell,如何编写shell脚本和执行【】linux_shell脚本编程_02vivim简单的常用操作【】linux_...

    shell脚本大全

    子Shell则是在一个新的Shell环境中执行命令,对父Shell环境无直接影响。 9. **错误处理**:`set -e`可以设置脚本在遇到错误时立即退出,而`trap`命令可以指定在接收到信号时执行的命令。 10. **脚本调试**:`set -...

    Shell脚本学习教程PDF版

    管道则可以连接多个命令,让前一个命令的输出成为后一个命令的输入,形成数据流的处理链。 函数和数组也是Shell脚本中不可或缺的部分。函数能实现代码复用,提高效率,而数组则允许我们存储一组相关的值,方便处理...

    shell脚本编程100例

    shell脚本可以用于编写nginx启动脚本,例如使用shell脚本编写一个nginx启动脚本的程序,实现自动化Web服务器管理。 使用shell脚本批量创建用户 shell脚本可以用于批量创建用户,例如使用shell脚本编写一个批量创建...

    Shell脚本中获取进程ID的方法

    当我在执行shell脚本时,它会启动一个叫子shell的进程。作为主shell的子进程,子shell将shell脚本中的命令作为批处理运行(因此称为“批处理进程”)。 在某些情况下,你也许想要知道运行中的子shell的PID。这个PID...

    109个shell脚本合计

    Shell脚本是Linux/Unix操作系统中的强大工具,它允许用户编写一系列命令,形成自动化任务,以提高工作效率。本文档汇总了109个实用的Shell...对于任何想要深入学习Shell脚本编程的IT从业者来说,这是一个宝贵的资源库。

    Linux shell 脚本 markdown文本编辑

    有关几个shell脚本的编写,如:编写一个shell脚本程序,它带一个命令行参数,这个参数是一个文件。如果这个文件是一个普通文件,则打印文件所有者的名字和最后的修改日期...加入了自己的注释理解

    IDEA中编写并运行shell脚本的实现

    然后新建一个Bash Script文件,名字自起。 四、脚本文件设置 脚本文件设置是指设置脚本文件的换行符和文件编码。设置换行符为linux换行符,文件编码设置为UTF-8。运行脚本时要注意脚本的编码和控制台的编码是否...

    Shell脚本编程100例

    Shell脚本编程是Linux系统管理中的重要技能,它允许用户自动化执行一系列命令,大大提高工作效率。以下是一些关于Shell脚本编程的关键知识点: 1. **Hello World脚本**:这是所有编程语言的基础,用于验证环境设置...

    解决Unity不能调用shell脚本传递参数的问题

    具体表现为:Unity试图通过`Process.Start`方法启动一个shell脚本,但是传递给脚本的参数没有被正确解析或使用。 #### 代码分析 在给出的Unity脚本示例中,可以看到如下关键代码: ```csharp [MenuItem("Tools/1...

    一个批量域名解析的Shell脚本例子

    标题中的“一个批量域名解析的Shell脚本例子”是指通过Shell脚本来实现对大量域名进行DNS解析的功能。在IT行业中,这种操作常用于网络监控、安全分析或数据收集等场景。下面将详细介绍这个主题。 首先,`...

    如何让Android系统或Android应用执行shell脚本

    在 Android 系统中,我们可以启动一个服务,让这个服务去执行 shell 脚本。例如,我们可以在 init.rc 文件中添加以下代码: `service usblp_test /data/setip/init.usblpmod.sh oneshot disabled` 然后,在应用...

    shell脚本与Makefile区别.docx

    Makefile 中的 shell 每一行是一个进程,不同行之间变量值不能传递,所以,Makefile 中的 shell 不管多长都要写在一行。Makefile 中变量以 $ 开头,为了避免和 shell 变量冲突,Makefile 中 shell 变量以 $$ 开头。 ...

    shell 脚本 实例 shell 脚本 实例

    6. **管道符**:`|`用于连接多个命令,将一个命令的输出作为另一个命令的输入。 在"参考shell脚本实例"中,我们可以期待看到各种实际应用的示例,这些示例可能涵盖如下内容: 1. **文件和目录操作**:包括创建、...

    C语言中文网shell脚本教程

    `2.27Linux bc命令:一款数学计算器.html`将介绍bc命令,这是一个强大的交互式计算工具,支持浮点运算和高级数学功能,对于在Shell脚本中进行复杂的数学计算非常有用。 通过这些教程,学习者可以全面了解Shell脚本...

    我的几个常用shell脚本

    例如,一个简单的脚本可能用于创建一个新的目录并改变当前工作目录: ```bash #!/bin/bash # 创建一个名为"MyFolder"的目录 mkdir MyFolder # 改变当前目录到新创建的目录 cd MyFolder ``` 标签“shell”提示我们...

    23 个非常实用的 Shell 脚本实例.doc

    接着,使用 SSH 连接到另一台服务器,执行相同的命令,并将结果写入到另一个文件中。最后,使用 AWK 命令将文件名作为遍历对象,逐一比对两台服务器上的文件,并输出文件的差异结果。 二、定时清空文件内容,定时...

    SHELL脚本练习 写一个脚本,利用循环计算10的阶乘

    在这个练习中,我们将编写一个SHELL脚本,执行后,打印一行提示“Please input a number:”,要求用户输入数值,然后打印出该数值,然后再次要求用户输入数值,直到用户输入“end”停止。脚本代码如下: ```bash #!/...

Global site tag (gtag.js) - Google Analytics