posts - 122,  comments - 25,  trackbacks - 0
在K-system中,需通过域名来访问,在各个测试环境及开发环境中访问时,需在本地做hosts域名绑定。这在开发、测试过程中就会经常的修改hosts文件,来完成在开发、测试、预发及正式环境之间切换。修改hosts文件并不是件复杂的事,但频繁的修改,也是挺累人的事。因此,写个批处理,自动完成环境域名绑定的工作,也可以省不少心。

域名绑定,包括k-system的域名及依赖环境的域名(如AEP、支付宝等)。不同的开发、测试环境只需变更k-system的变更,依赖环境的域名相同;预发环境只需绑定k-system的域名,不需依赖环境的域名绑定;生产环境则取消所有的域名绑定。基于此,一个hosts文件可分成几个部份:与K-system无关的其他域名绑定;K-system依赖环境的域名绑定;预发环境K-system域名的绑定;开发、测试环境的K-system域名绑定。

根据上述分析,预定义若干hosts文件,分别对应上述列的几部份内容。为每个环境建一个批处理文件,根据环境需要将这些预定义的hosts文件进行组合,并动态替换系统的hosts(C:\WINDOWS\system32\drivers\etc)文件。同时,调用IE,打开K-system登录页面。这样,通过一个批处理,可以很方便的在各个环境中切换,免去经常要去编辑hosts文件的烦扰。

考虑到开发和测试会在多个本地测试环境切换,建立过多的批处理也不是个好办法。这时,可以考虑将本地开发、测试环境的切换用同一个脚本实现,不同的环境由用户提供运行参数来指定。如:"test_env.bat 10.2.225.87",则表示将K-system环境切换到87服务器。

部份批处理内容如下,test_env.bat:
@echo off

rem 根据实际情况,修改windows的安装目录
set WIN_DIR
=C:\WINDOWS

echo 生成测试hosts文件.
if exist .env_temp del .env_temp
if "%1"=="" (
    type inc\local.
default >> .env_temp
    goto endl
)

echo #FI 开发、测试环境 
>> .env_temp
rem 指定其他的IP
echo 
%1    fi.alisoft.com  image.alisoft.com >> .env_temp

:endl

rem 合并hosts文件
call inc\merger.bat env.host inc\.env_base inc\.env_local .env_temp

rem 备份系统的hosts
set SYS_HOST
=%WIN_DIR%\system32\drivers\etc\hosts
set SYS_HOST_BAK
=%SYS_HOST%-bak0
if not exist %SYS_HOST_BAK% (
    copy 
%SYS_HOST% %SYS_HOST_BAK%
)

rem 复制hosts文件到系统目录
move env.host 
%SYS_HOST%
del .env_temp


rem 打开浏览器.
call cmd 
/c start iexplore https://fi.alisoft.com
echo done!

文件合并批处理 merger.bat:
@echo off
set output
=%1 
if exist %output% del %output%
:getfile 
    shift 
    
if "%1"=="" goto end 
    type 
%1 >> %output% 
    goto getfile 

:end 
    set todir
= 
posted on 2008-12-24 15:09 josson 阅读(575) 评论(0)  编辑  收藏 所属分类: 大杂烩

只有注册用户登录后才能发表评论。


网站导航:
 
<2008年12月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

常用链接

留言簿(3)

随笔分类

随笔档案

收藏夹

搜索

  •  

最新评论

阅读排行榜

评论排行榜