最近在写一个关于agile的持续构建测试环境的perl script,主要是需要从服务器下载到最新的build,然后分布到各个client机器上。 把最新的build文件分布到client机器上,我们最常用的也就是ftp了,下面先讲讲应用ftp的情况。
在windows上我们可以把ftp的操作命令写到一个config文件里面,然后利用ftp -s:ftp.conf命令执行即可获得最新的build文件。这样比较方便,有什么变化只需要更改此config文件即可。无需改动其他代码。
示例如下:
将其保存到ftp.conf文件,然后只要执行ftp -s:ftp.conf命令即可。这样做比较方便,但是我们就得维护一个config文件。
还有一点就是这样不能在linux底下得到通用,因为linux下的ftp命令没有-s选项,所以就不能该方面不能实现跨平台。
此方法在windows上已经可以应用,如果可以识别操作系统,那么可以为linux寻找另一种方法,这也是我遇到的一个问题,开始我想把ftp.conf里的各条命令取出来然后在命令行里面逐条执行,这样也可以达到目的,但这样做很繁杂,而且易去维护。
这时,发现了linux的wget命令,该命令十分强大。首先介绍一下wget命令。
wget是一个从网络上自动下载文件的自由工具。它支持HTTP,HTTPS和FTP协议,可以使用HTTP代理.
所谓的自动下载是指,wget可以在用户退出系统的之后在后台执行。这意味这你可以登录系统,启动一个wget下载任务,然后退出系统,wget将在后台执行直到任务完成,相对于其它大部分浏览器在下载大量数据时需要用户一直的参与,这省去了极大的麻烦。
wget可以跟踪HTML页面上的链接依次下载来创建远程服务器的本地版本,完全重建原始站点的目录结构。这又常被称作"递归下载"。在递归下载的时 候,wget遵循Robot Exclusion标准(/robots.txt). wget可以在下载的同时,将链接转换成指向本地文件,以方便离线浏览。
wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性.如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕。如 果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载。这对从那些限定了链接时间的服务器上下载大文件非常有用。
所以运用此命令即可达到我们的目的。
需要指定ftp的用户名,密码。-N --timeStamping选项表示只下载更新的文件。
这样我们就可以实现linux上的下载了
后来听同事讲,也有一个windows上的小工具wget.exe,其不需要安装,直接运行即可,功能与linux上wget是相同的。所以最终可以把下载的代码都用wget来代替,因为其不是windows自带的,需要在windows上下载wget.exe。
这样就完成了分布build文件这一模块了。
关于如何来驱动这些命令的,会在以后讲解。
在windows上我们可以把ftp的操作命令写到一个config文件里面,然后利用ftp -s:ftp.conf命令执行即可获得最新的build文件。这样比较方便,有什么变化只需要更改此config文件即可。无需改动其他代码。
示例如下:
- open "host"
- "username"
- "password"
- binary
- prompt
- cd buildDir
- lcd clientDir
- mget *
- bye
还有一点就是这样不能在linux底下得到通用,因为linux下的ftp命令没有-s选项,所以就不能该方面不能实现跨平台。
此方法在windows上已经可以应用,如果可以识别操作系统,那么可以为linux寻找另一种方法,这也是我遇到的一个问题,开始我想把ftp.conf里的各条命令取出来然后在命令行里面逐条执行,这样也可以达到目的,但这样做很繁杂,而且易去维护。
这时,发现了linux的wget命令,该命令十分强大。首先介绍一下wget命令。
wget是一个从网络上自动下载文件的自由工具。它支持HTTP,HTTPS和FTP协议,可以使用HTTP代理.
所谓的自动下载是指,wget可以在用户退出系统的之后在后台执行。这意味这你可以登录系统,启动一个wget下载任务,然后退出系统,wget将在后台执行直到任务完成,相对于其它大部分浏览器在下载大量数据时需要用户一直的参与,这省去了极大的麻烦。
wget可以跟踪HTML页面上的链接依次下载来创建远程服务器的本地版本,完全重建原始站点的目录结构。这又常被称作"递归下载"。在递归下载的时 候,wget遵循Robot Exclusion标准(/robots.txt). wget可以在下载的同时,将链接转换成指向本地文件,以方便离线浏览。
wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性.如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕。如 果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载。这对从那些限定了链接时间的服务器上下载大文件非常有用。
所以运用此命令即可达到我们的目的。
- wget --ftp -user=username -ftp -password=pwd -N --timeStamping ftpAdress
这样我们就可以实现linux上的下载了
后来听同事讲,也有一个windows上的小工具wget.exe,其不需要安装,直接运行即可,功能与linux上wget是相同的。所以最终可以把下载的代码都用wget来代替,因为其不是windows自带的,需要在windows上下载wget.exe。
这样就完成了分布build文件这一模块了。
关于如何来驱动这些命令的,会在以后讲解。