多站点FTP同步
需求描述:
由于工作的原因,发布程序时,经常需要将一站点的脚本、程序同步到其它的终端站点中,以保证所有站点的程序是同步的,用过FlashFtp,CuteFtp,LeapFtp等客户端工具,均于自己的需求大相径庭,且不具有备份和回滚功能,于是,便有了自己去写一个工具的想法。
在网上没有太多的资料可寻,rungoosc的文章《多站点同步解决方案》,给了我一些灵感,但是,他仅仅提供了一些思路,且一些功能与自己的需求有点出入,比如他用的是Web端进行操作,而自已需要的是用C/S的工具。
解决方案描述:
本解决方案通过同时对多台 FTP 服务器的同步管理,实现同步更新,同步备份。如果更新过程有误,自动回滚处理,实现多服务器间的同步更新。
此方案使用 C/S 架构,因用FTP协议进行传输有太多的不可能性,顾使用了ProgressBar显示站点、站点下文件上传的进度,并且为每个文件,提供了次传输错误的机会,并且这个数量可以自己通过UI界面进行修改。因部署网站机器的上传带宽的限制,顾不再使用异步(发布错误时,能够及时回滚)、及工作线程的多线程。
以下是自己编写工具,单个站点发布程序的流程如下:
(1)
(2)
(3)
界面赏析:
下图是选择测试站点要进行上传并同步的文件,测试站点目录和同步规则及FTP站点信息可以在此配置。
下图是对已经选择的站点及文件进行同步上传,且有进度条进行上传进度显示,每个文件的每个上传阶段的状态均会在ListView中进行实时显示。
说明:该软件经测试可以使用,如您在使用中有问题,欢迎提出宝贵的意见,本人邮箱:314987127@163.com
多站点FTP同步的更多相关文章
- ftp同步代码
一个很naive的代码,用来做ftp的"主->从 下载,从->主 上传".ftp可不像mysql那样还有log可以用,所以完全naive的做法:连到ftp server ...
- 微信开发之SVN提交代码与FTP同步到apache的根目录
SVN是协同开发的,版本控制器,就是几个人同时开发,可以提交代码到SVN服务器,这样就可以协同开发,一般是早上上班首先更新下代码,然后自己修改代码 工作一天之后,修改代码之后,下班之前,更新代码,然后 ...
- atom通过remote ftp同步本地文件到远程主机的方法
视频教程:https://ninghao.net/video/3991 搜索 “remote ftp”, 点击 “Package”搜索包,Install”安装 本地打开需要同步的项目目录 创建 rem ...
- 自己做的notepad++ FTP同步插件
平时修改FTP上的文件的时候,想先备份一下,没有合适的方法,尝试做了一个小插件. 差点忘了,下载地址 https://pan.baidu.com/s/1htdtT9E 下面是 具体的说明 Fa ...
- 通过ftp同步服务器文件:遍历文件夹所有文件(含子文件夹、进度条);简单http同步服务器文件实例
该代码主要实现,指定ftp服务地址,遍历下载该地址下所有文件(含子文件夹下文件),并提供进度条显示:另外附带有通过http地址方式获取服务器文件的简单实例 废话不多说,直接上代码: 1.FTPHelp ...
- PhpStorm 设置自动FTP同步文件
1.添加一个FTP服务器 ① 首先在这里打开添加FTP的页面,步骤,工具栏 -> Tools -> Deployment -> Configuration . ②添加服务器 ...
- Ftp实现文件同步
通常在做服务器与服务器文件.服务器与本地文件同步时通过Ftp服务实现,下面就以服务器文件和本地同步为例,介绍一下Ftp同步文件:首先建立一个Ftp站点服务,基本身份验证登陆,端口号为默认的21:Ftp ...
- beyond compare ftp 文件夹同步
因为经常要同步服务器上的代码,今天试了一下beyond compare 的ftp同步非常爽.以前都只用了beyond compare的文件夹比较功能了,ftp功能没有使用过. 步骤1:点击:会话——& ...
- Windows平台下结合 tortoiseSVN 和 VisualSVN Server 搭建SVN服务器并实现 web 站点同步
1. tortoiseSVN 关于 tortoiseSVN 的安装使用详见博文 TortoiseSVN的安装及其简单使用. 2. VisualSVN Server 关于 VisualSVN Serve ...
随机推荐
- css3 字体旋转
<style> #mycon { font-weight: bold; font-size: 150px; transform: rotateX(10deg); -webkit-trans ...
- [AngularJS] Transclude -- using what existing in DOM to replace the template elements in directive
var app = angular.module("phoneApp", []); app.controller("AppCtrl", function($sc ...
- jquery 源码分析学习地址
http://www.ccvita.com/121.htmljQuery工作原理解析以及源代码示例http://www.cnblogs.com/haogj/archive/2010/04/19/171 ...
- android学习日记25--ANR和Hander消息机制
1.ANR(Application Not Responding)定义 在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:A ...
- iPad 3g版完美实现打电话功能(phoneitipad破解)
看到这个标题,有的同学可能吐槽,iPad 用来打电话,多雷人啊,人家apple设计的时候没加电话功能是有益这样做的. 只是这次真的有这种需求,一台測试用的iPad 1 3G版的机器,放进去了一张3G电 ...
- js hash字符串转成json
var a='account.type=1&account.id=&account.dependFlag=0&account.card.companyId=1&acco ...
- VS2005工程迁移到Eclipse CDT
原工程在VS2005下创建,后迁移到Eclipse CDT 3.3.2 + MingGW下,并增加makefile文件. 原VS2005下工程Sample,实现了对类SampleClass封装,生成S ...
- Debian 6配置GNOME桌面环境
1.安装xorgroot@debian:~# apt-get install xorg 2.安装gdm(GNOME Display Manager)root@debian:~# apt-get i ...
- Android之利用HTTP网络通信实现与PHP的交互(三)
Android与PHP的交互是通过Http网络编程来实现的,利用php访问数据库,并且操作数据库中的数据,利用php作为接口,使Android连接数据库. 一般情况下,我们使用Json格式进行传输,利 ...
- typeof应该注意的地方(网龙公司校招笔试题)
<script language="javascript" type="text/javascript"> alert(new String('a' ...