工作需要,为了快捷部署,节省时间,避免部署可能出现的错误问题(数据库的备份,应用的备份),一次写好Linux和Python的脚本,多次使用,原创做个笔记:
Linux shell script:
#!/bin/bash ###dennis zhao linux shell script automatic deploy application server(svn) ###2013-07-21 ###27202787@qq.com source /etc/profile export LC_ALL='en_US.UTF-8' echo "==$1==#####################################`date "+%F %H:%M:%S"`" echo "dev parametre=====stress,local" echo "stage parametre=====staging" echo "prod parametre=====prod" backup_sql_path=/data2/backup/sql backup_war_path=/data2/backup/war current_date=`date +"%Y%m%d%H%M"` db_name=laneige password=xxxx2011 if [ ! -d "${backup_sql_path}" ]; then mkdir -p "${backup_sql_path}" fi if [ ! -d "${backup_war_path}" ]; then mkdir -p "${backup_war_path}" fi if [ "$1" = "local" -o "$1" = "" -o "$1" = "stress" ]; then password=xxxx2012 mysqldump -uroot -p${password} ${db_name} > ${backup_sql_path}/${current_date}.sql cd ${backup_sql_path} tar -zcvf ${current_date}.tar.gz ${current_date}.sql --remove-files sleep 3 #ls -lth ${backup_sql_path} echo "backup database ${db_name} OK........." elif [ "$1" = "staging" ]; then password=xxxx2011 elif [ "$1" = "prod" ]; then password=xxxx2011 fi echo "------------------------------------------------------------------------------------------" echo "compile class file.............begin............." resource=/data/src/laneige tomcat_home=/opt/app/tomcat webapps=${tomcat_home}/webapps echo "backup war file.............begin............." cp ${webapps}/laneige_Web.war ${backup_war_path}/laneige_Web_${current_date}.war sleep 6 echo "backup war file.............end............." echo "SVN update ...........start..............." cd ${resource} svn up sleep 1 svn up echo "SVN update .............end............." if [ "$1" = "" -o "$1" = "local" -o "$1" = "stress" ]; then mvn -U clean package -PSTRESS echo "dev complie completed-----------------" elif [ "$1" = "staging" ]; then mvn -U clean package -PSTAGING echo "staging complie completed-----------------" elif [ "$1" = "prod" ]; then mvn -U clean package -PPROD echo "prod complie completed-----------------" fi echo "compile class file.............end............." echo "------------------------------------------------------------------------------------------" sleep 5 if [ "$1" = "" -o "$1" = "local" -o "$1" = "stress" ]; then echo "stop tomcat application server.....begin.........." echo "stop tomcat application server..............." process_id=`ps -ef | grep tomcat | awk '{print $2,$8}' | grep 'java$'| awk '{print $1}'` #echo "process_id=========================${process_id}" if test -z "${process_id}" then echo "The tomcat stopped already.................`pwd`" else kill ${process_id} echo "kill tomcat process finish.............." #ps -ef | grep tomcat fi echo "stop tomcat application server.....end.........." sleep 2 rm -rf ${webapps}/laneige_Web* cp -rf ${resource}/laneige-web/target/laneige_Web.war ${webapps}/ sleep 3 echo "------------------start tomcat---------`pwd`---------------------------" ${tomcat_home}/bin/startup.sh echo "------------------finish tomcat------------------------------------" sleep 3 ps -ef | grep tomcat elif [ "$1" = "staging" ]; then echo "Copy files to stage environment........................" echo "Start copying files takes a few minutes........................" scp -P 61 /data/src/laneige/laneige-web/target/laneige_Web.war root@192.168.10.125:/data/src/temp echo "Copy file finished, please check it-----------------" #sleep 10 #ssh -t -p 61 root@192.168.10.125 '/tmp/sh/stageStart.sh' echo "You should start the tomcat application server in the stage server.........." #echo "The staging environment has been deployed already, please check it, thank you!!!!!!!" elif [ "$1" = "prod" ]; then echo "Copy files to production environment........................" echo "Start copying files takes a few minutes........................" scp -P 65 /data/src/laneige/laneige-web/target/laneige_Web.war root@192.168.11.185:/data/src/temp echo "Copy file finished, please check it-----------------" #sleep 10 #ssh -t -p 65 root@192.168.11.185 '/tmp/sh/prodStart.sh' echo "You should start the tomcat application server in the production server.........." #echo "The production environment has been deployed already, please check it, thank you!!!!!!!" fi echo "==$1==#####################################`date "+%F %H:%M:%S"`"
相关推荐
6. **部署和运行**:在Linux服务器上部署这个解决方案时,首先需要解压文件,然后设置好Python3和PhantomJS的路径,最后运行Python脚本来启动自动登录流程。可能还需要处理权限、环境变量等问题,确保所有依赖正确...
本文将深入探讨如何使用shell脚本来实现这一目标,以标题"Linux环境部署脚本,一键配置系统设置,安装常用工具开发环境渗透测试工具等.zip"为例,我们将分析其中的核心内容——`init.sh`。 首先,`init.sh`通常是一...
本文将详细介绍如何将基于Python的Web应用程序部署到Linux服务器上,并重点介绍部署过程中涉及的关键技术和步骤。文章假设读者具备一定的Python编程基础及Linux操作经验。 #### 准备工作 1. **Linux服务器**:首先...
_Python_下载.zip"为例,介绍如何利用Python编写和应用这些脚本。 首先,我们关注的是"zabbix-alertscripts-master"这个文件夹,它通常包含了Zabbix报警脚本的源代码。在Zabbix中,当触发器触发时,系统会调用这些...
综上所述,"heroku-tools-0.3.1.tar.gz"是一个用于Python开发的实用工具集,旨在简化Heroku平台上的应用管理和部署。了解并有效地利用这样的库,对于提升Python开发者在Heroku平台上的工作效率具有重要意义。
Systemd是Linux系统中广泛使用的初始化系统,它记录了系统的各种操作和服务状态,而Python则作为一种强大的编程语言,常被用于日志处理和自动化任务。本文将详细介绍如何使用Python将systemd日志导出到外部服务,如...
在IT行业中,Python是一种强大的脚本语言,广泛用于自动化任务,包括文件管理和备份。本话题主要探讨如何使用Python实现文件的定时压缩备份。这个过程通常涉及两个关键部分:定时器和文件压缩。以下是对这两个核心...
总之,`frida-7.1.12-py3.5-linux-i686.egg` 提供了一个强大的工具,让Python开发者能够利用Frida的强大功能,进行代码调试、插桩以及各种运行时分析,无论是对于开发、测试还是运维,都有着广泛的应用场景。
5. **广泛的平台支持**:Python可以在多种操作系统上运行,包括Windows、macOS、Linux等,这使得开发者可以轻松地跨平台开发和部署应用。 #### 混合语言编程的应用 在实际项目中,混合语言编程通常涉及系统编程...
- **移动 App 开发**:利用 Kivy 或其他跨平台框架,实现一款移动应用并部署至 Android 和 iOS 平台。 #### 八、总结 - **Python 生态圈**:总结 Python 社区的发展历程、开源库资源、在线学习平台等信息,为学习者...
为了更直观地理解MySQL在Linux应用中的集成过程,以下以一个简单的Tcl脚本为例,展示如何通过Tcl语言与MySQL交互: ```tcl package require mysqltcl # 连接数据库 set db [mysql::connect -host localhost -user ...
在本例中,操作系统选用的是Red Hat Enterprise Linux 5,这是一种稳定且广泛使用的服务器级Linux发行版。数据库选择的是ORACLE XE 10g,而Python版本为2.4,虽然这个版本现在已较为陈旧,但它是Django 1.2.4所支持...
6. 根据需求编写使用Frida的Python脚本,并执行。 在实际操作中,开发者和运维人员可能还需要处理权限问题、依赖冲突以及与现有系统的集成。理解Frida的用法和Python Egg的机制,对Linux环境的熟悉,以及对Python包...
4. **创建或获取待发布的应用程序**:本文将以“SuperMap IS Java”为例进行演示,这是一个GIS(地理信息系统)相关的Java应用程序。 #### 三、部署应用程序到WebSphere 接下来详细介绍如何将SuperMap IS Java应用...
在Python编程中,有时我们需要将编写好的代码分享给不熟悉编程环境的朋友,或者为了方便部署,需要将Python脚本转换为可以直接在Windows操作系统上运行的.exe可执行文件。本教程将以一个简单的“圣诞树”代码为例,...
1. **安装**:在本例中,我们看到的文件`cx_Freeze-6.8.1-cp37-cp37m-win_amd64.whl`是一个Python的wheel文件,它是预编译的Python包,适用于Python 3.7版本的64位Windows系统。要安装这个库,可以使用pip命令: ``...
这里以32位的Red Hat Enterprise Linux 5为例,同时安装了Oracle XE 10g作为数据库,以及Python 2.7.1和Django 1.2.4。确保操作系统、数据库和Python版本与你的需求相匹配。 2. Django配置 Django是Python中最流行...
1. **Linux服务器**:拥有一台可访问的Linux服务器,并且具备足够的权限(如root权限),以便于执行安装和配置操作。 2. **基础软件**:服务器上应预先安装基础软件,如文本编辑器(如vi或nano)、编译器、解释器等...
- `setuptools`: 用于创建、管理和部署Python包的工具。 - `wheel`: 用于处理Python的.whl二进制包格式,提高安装速度。 - `simple-http-server`: 用于提供HTTP服务,让内网中的其他机器可以访问你的pip源。 2. ...
安装完成后,可以在Python脚本中导入`tdl`库并开始使用其提供的功能。 **总结** `tdl`库是Python游戏开发的一个宝贵工具,尤其适合创建终端风格的图形界面。通过其强大的渲染和事件处理能力,开发者可以轻松创建出...