`
hudeyong926
  • 浏览: 2034782 次
  • 来自: 武汉
社区版块
存档分类
最新评论

提取ftp上传文件与服务器文件对比的更新

 
阅读更多

将winscp上传的更新全部提取到输出目录,可以打包上传的线上

start.bat

@echo off
cd /d "F:\newproject\start"

php -f "p.php"
@pause

 p.php

<?php
/**
 * 工具文件
 * 目的在于递归比较两个文件夹
 * @param string $dir1          路径1,是标准,是有修改过的新项目
 * @param string $dir2			路径2,服务器的文件夹
 *
 */

//输出目录
$out_dir = '/data/webroot/outdir/';

function createFolder($path) {
	if (!file_exists($path)) {
		createFolder(dirname($path));
		mkdir($path, 0777);
	}
}

function loopdir ($dir1, $dir2) {
	$files = scandir($dir1);
	
	foreach ($files as $key => $file) {
		if ($file == '.' || $file == '..' || $file == '.svn') continue;
		
		if (is_dir($dir1.'/'.$file)) {
			loopdir($dir1.'/'.$file, $dir2.'/'.$file, $dir1.'/'.$file);
		}
		else {
			if (!file_exists($dir2.'/'.$file)) {
				if (!is_dir('/data/webroot/outdir'.$dir1)) {
					createFolder('/data/webroot/outdir'.$dir1);
				}
				
				copy($dir1.'/'.$file, '/data/webroot/outdir'.$dir1.'/'.$file);
			}
			else {
				if((md5_file($dir1.'/'.$file) != md5_file($dir2.'/'.$file)) || (sha1_file($dir1.'/'.$file) != sha1_file($dir2.'/'.$file))) {
					if (!is_dir('/data/webroot/outdir'.$dir1)) {
						createFolder('/data/webroot/outdir'.$dir1);
					}
					
					copy($dir1.'/'.$file, '/data/webroot/outdir'.$dir1.'/'.$file);
				}
			}
		}
		
	}
}

/**
* 示例
* 项目修改完后的文件放入/data/webroot/basic目录
* 已经发布的项目/data/webroot/www(dever,login)
* 和参数1保持一致
*
**/
loopdir('/data/webroot/basic', '/data/webroot/www');

 

 
分享到:
评论

相关推荐

    文件服务器方案优缺点比较

    本文将分析并比较几种常见的文件服务器方案,包括无独立图片服务器、单一独立文件服务器、分布式文件系统以及商业云服务器。 1. 无独立图片服务器:这种方案在Tomcat目录下直接存放图片,简化了实现过程,无需额外...

    windows下的资源管理工具,压缩软件集于一身,还有ftp功能,文件比较功能

    文件夹比较功能”进一步强调了这款软件的特色,FTP功能允许用户连接到远程服务器进行文件上传和下载,而文件夹比较功能则可以帮助用户快速找出两个文件夹之间的差异,这对于版本控制或者备份验证非常有用。...

    Python 获取ftp服务器文件时间的方法

    ### Python 获取FTP服务器文件时间的方法 在日常工作中,我们经常需要与FTP服务器进行交互,比如上传、下载文件或检查文件的最后修改时间等。对于后者,即如何获取FTP服务器上文件的具体时间信息(特别是将其转化为...

    Ftp下载实例,含(ftp目录树,下载进度进度条,下载速度)

    FTP是一种用于在网络上进行文件传输的标准协议,允许用户从远程服务器上传或下载文件。在C#中,我们可以使用`FtpWebRequest`类来与FTP服务器进行交互。 1. **创建FTP连接**: 使用`FtpWebRequest`类初始化一个新的...

    C#写的FTP类及实例,支持上传,下载,进度条,删除及文件夹浏览

    在下载过程中,可以通过比较已接收的数据量与总大小来更新进度条。 3. **删除文件**:创建一个DELETE请求,执行请求并检查响应状态以确认操作成功。 4. **浏览目录**:创建一个LIST请求,获取目录列表,解析服务器...

    stat_total.zip_ftp

    描述提到通过FTP从服务器下载文件,然后解析这些文件,将结果导出到Excel,并与数据库中的数据进行对比。这个过程涉及到了网络数据传输、文件操作、数据分析以及数据验证等多个IT知识点。 1. FTP(文件传输协议):...

    PHP 文件上传源码分析(RFC1867)

    尽管FTP上传在传输数据时比较稳定,但它也存在不少缺点:用户需要安装额外的软件,使用起来不够便捷,且在安全性方面不如HTTP上传(例如,FTP协议在传输过程中可能不加密数据)。因此,FTP上传一般不适用于需要易用...

    ftp连接工具

    4. **文件同步**:用户可以通过比较本地和远程目录的文件和文件夹,实现文件的双向或单向同步,确保本地和服务器上的文件保持一致。 5. **编辑功能**:CuteFTP9允许用户直接在远程服务器上编辑文件,无需下载、编辑...

    PilotEdit.13.8.0.rar

    它提供了可自定义的语法和关键字高亮,高级搜索和替换操作,自动文本编码,256位AES加密/解密,以及一个内置的FTP客户端,您可以打开,编辑和从FTP服务器直接上传文件到/。 除了标准的文本编辑功能,PilotEdit...

    PilotEdit 15.5.0 Multilingual x32x64.rar

    它提供了可自定义的语法和关键字高亮,高级搜索和替换操作,自动文本编码,256位AES加密/解密,以及一个内置的FTP客户端,您可以打开,编辑和从FTP服务器直接上传文件到/。 除了标准的文本编辑功能,PilotEdit可以...

    PilotEdit.15.4.0.rar

    它提供了可自定义的语法和关键字高亮,高级搜索和替换操作,自动文本编码,256位AES加密/解密,以及一个内置的FTP客户端,您可以打开,编辑和从FTP服务器直接上传文件到/。 除了标准的文本编辑功能,PilotEdit可以...

    PilotEdit 15.3.0 (x64) Multilingual.rar

    它提供了可自定义的语法和关键字高亮,高级搜索和替换操作,自动文本编码,256位AES加密/解密,以及一个内置的FTP客户端,您可以打开,编辑和从FTP服务器直接上传文件到/。 除了标准的文本编辑功能,PilotEdit可以...

    ftp c code

    - **GetFtpId()**:从`GetPid()`返回的结果中提取FTP服务的进程ID。 - **Opftp()**:控制FTP服务的启动和停止。通过比较命令参数判断是否启动或停止服务。 ### 示例代码分析 代码示例中包含了初始化守护进程(`init...

    java源码包3

    Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板  使用Java语言编写的一款用于反映颜色变化的面板,也就是...

    自动升级程序.rar_C# 升级_c#程序升级_note9nm_升级程序_发布

    使用FTP、WebDAV或者自定义API接收开发者上传的更新文件。同时,服务器需要能够提供一个清晰的API或页面供客户端查询最新版本信息。 在`note9nm`这个上下文中,可能是指特定的项目名或者开发团队的代号。至于标签中...

    Linux常用命令

    文件对比** - `diff`: 比较两个文件的不同之处。 - `diffstat`: 显示两个文件之间的差异统计信息。 **18. 文件查找** - `find`: 在指定目录树下搜索符合特定条件的文件。 - `git`: Git版本控制系统工具,用于追踪...

    10.6.2 分析 - Wireshark 数据包分析实战(第 3 版) - 知乎书店1

    随后,通过比较原始文件和提取文件的 MD5 哈希值(图 10-37),如果哈希值相同,则证明提取的文件与原始文件一致,没有在传输中受损。 这个案例详细演示了 Wireshark 如何在 FTP 数据包分析中定位数据传输的起点,...

    asp.net 一个封装比较完整的FTP类

    根据给定的文件内容,可以提取以下关于***中FTP类的知识点: 1. FTP类的基本功能和封装完整性: - 实现了较为完整的FTP操作,包括文件上传、下载、进度显示等。 - 该类在实际应用中存在一些错误,可能需要额外的...

    TotalCommander

    此外,TotalCommander还支持FTP和FTPS协议,用户可以直接在程序内部上传和下载远程服务器上的文件,无需额外安装FTP客户端。 TotalCommander还拥有强大的搜索功能,允许用户根据各种条件(如文件类型、大小、日期等...

    java源码包---java 源码 大量 实例

    Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。... //得到服务器目录与文件列表输入流  StringBuffer info=new StringBuffer(); /...

Global site tag (gtag.js) - Google Analytics