菜鸟写的php小脚本,apache执行需指定用户权限.
将指定svn版本号(GET参数s)更新的文件上传到FTP上
<?php
$ftpserver = 'www.sitename.com';//ftp server
$ftpuser = 'test';//ftp user name
$ftppassword = 'test';//ftp user password
$svnrepository = "d:\web";//svn repository directory
$svnbinpath = "";//svn bin file directory
if($v1 = $_GET['s'])
{//版本号
$r = array();//执行外面svn命令返回的信息数组
$f = array();//匹配文件
$fa = array();//所有需上传的匹配文件
if($v2 = $_GET['e'])
{//至版本号(从起始版本号至版本号所有文件)
exec($svnbinpath." svn log $svnrepository -r {$v1}:{$v2} -q -v",$r);
}
else
{//单版本号
exec($svnbinpath." svn log $svnrepository -r {$v1} -q -v",$r);
}
foreach($r as $value)
{
if(preg_match("/^[ ]*[AM]{1} (\/.+)$/i",$value,$f))
{//符合文件更新规则的文件名放入上传数组
$fa[] = $f[1];
}
}
echo "revision: $v1 ".(($v2)?" - $v2":'')." need upload files:\n<br>";
foreach($fa as $value)
{
echo $svnrepository.$value."\n<br>";
}
if($fa)
{
$conn_id = ftp_connect($ftpserver);
$login_result = ftp_login($conn_id,$ftpuser,$ftppassword);
if ((!$conn_id) || (!$login_result))
{
echo "FTP connection has failed! :(\n<br>";
exit();
}
else
{
echo "\n<br>Connected to $ftpserver ftp\n<br>";
}
foreach($fa as $value)
{
$upload = ftp_put($conn_id, str_replace('\\','/',$value), $svnrepository.$value, FTP_BINARY);
if($upload)
{
echo "upload $value succeed :)\n<br>";
}
else
{
echo "upload $value failed :(\n<br>";
}
}
echo "upload completed";
ftp_close($conn_id);
}
}
else
{//无参数提示
echo '请输入版本号参数s,如需连续多个版本则加上参数e';
}
?>
分享到:
相关推荐
- **FTP命令文件生成**:通过一系列的`@echo`命令生成FTP命令文件`ftpcmd.txt`,其中包含了登录FTP服务器、切换目录、上传文件等命令。 - **执行FTP命令**:最终使用`@ftp-n<ftpcmd.txt>>ftplog.txt`命令执行上述FTP...
3. **文件传输**:使用Perl的网络功能如`Net::FTP`模块来上传备份文件。 4. **导入操作**:编写远程执行导入脚本的功能。 Perl脚本的关键在于如何正确调用系统命令以及处理文件传输。例如,可以通过`system`函数...
1. 安装 SVN 客户端:教程推荐使用 TortoiseSVN,可以从指定的 FTP 地址下载安装。 2. 读操作: - 项毓毅和管理组可以直接检出"质量管理部"目录。 - 其他员工需要分别检出"部门财富库"和"产品线管理"子目录,因为...
启动服务后,用户可以通过FTP协议上传和下载文件。 **SVN**: Subversion(SVN)是一个版本控制系统,用于跟踪文件和目录的变更。安装SVN需要安装服务器和客户端软件。配置SVN仓库,设置用户访问权限,并确保服务器...
通过SVN,你可以管理文件的历史版本,同时与远程FTP服务器进行协同工作。 3. **客服端和服务端文档**: "客服端.doc"和"服务端.doc"很可能是关于FTP客户端和服务器的使用指南。FTP客户端是你在本地计算机上使用的...
本文档总结了如何利用Ant与版本控制系统(如SVN、CVS)集成,实现代码的自动下载,再通过FTP上传至远程服务器并启动应用的过程。 首先,我们需要确保具备相应的环境,如JDK1.7、TOMCAT6.0和ANT1.8.2,以及SVN、CVS...
标题“更新服务器文件到本地”涉及的是在IT领域中常见的版本控制或文件同步操作,尤其在软件开发过程中,经常需要将远程服务器上的文件更新到本地工作环境中。这可能包括代码库、配置文件或其他项目资源。这里提到的...
FTP更改上传则是在文件更新后,通过FTP协议将这些改动上传至远程服务器,确保服务器上的文件与本地保持同步,这对于网站维护和更新尤其有用。 程序的主体是一个名为"FileUpdate.exe"的可执行文件,这通常是一个...
用户可以上传代码到FTP服务器,然后通过版本控制系统管理文件的历史版本。 总结来说,"简单易用的FTP服务器程序"是帮助用户轻松搭建和管理FTP服务的工具,具备用户账户管理、权限设置、安全加密等功能,适用于各种...
- 使用FTP工具将下载好的GCC包上传至AIX系统的指定目录,例如`/usr/opt/freeware/src/packages/SOURCES`。 3. **安装GCC包**: - 登录至AIX系统,并切换至root用户。 - 进入到GCC包所在目录:`# cd /usr/opt/...
5. **网络搜索**:如果.bin文件需要从网络上获取,自动化工具可能集成HTTP或FTP客户端功能,用于下载指定的文件。此外,也可能涉及网页抓取和解析,以从网页中提取.bin文件的链接。 6. **版本控制**:标题中的"3.3...
2. **版本控制集成**:将新代码或改动添加到本地SVN仓库,通常通过`svn add`命令添加新文件,`svn commit`命令提交更改,同时附上有意义的提交注释。 3. **通知发布人员**:开发者完成提交后,需通知发布人员,告知...
这些资源可以通过版本控制系统(如SVN或Git)进行版本管理和协同编辑。上传和下载则涉及到远程服务器的交互,这通常用于将本地开发的资源发布到测试或生产环境中,或者从服务器获取最新的代码。 "上传"操作是指将...
在本文中,我们将深入探讨如何利用Msbuild、MSBuild Extension Pack March 2014插件和自定义任务来实现自动化构建流程,包括源码获取、项目编译、部署到IIS以及通过FTP上传。 **MSBuild Extension Pack March 2014*...
2. **便于版本控制**:打包后的文件可以视为一个整体,方便进行版本控制,例如使用Git或SVN等工具进行版本管理,使得团队协作更加顺畅。 3. **保护源代码**:打包的文件可以对源代码进行一定程度的加密,防止在上传...
至于Jenkins与FTP的集成,这通常用于将构建结果上传到FTP服务器。Jenkins提供了FTP插件,配置好FTP服务器的连接信息后,可以在构建步骤中添加发布到FTP的步骤。这样,每次成功构建后,新的应用程序版本就能自动部署...
可以从指定FTP路径获取相应版本的安装程序,按照默认配置安装。 3. Git 通用操作: - 登录远程服务器:使用提供的URL,推荐使用Chrome浏览器,输入用户名和密码(默认是拼音名字)。 - 修改个人信息:登录后,...
- **FTP发布**: 通过FTP协议上传打包好的应用程序至目标服务器。 - **E-mail发布**: 将应用程序打包成压缩文件并通过电子邮件发送给指定用户。 - **SSH/SCP安全发布**: 利用SSH/SCP协议安全地传输文件到远程...