Dsync 开发进度
当前版本 Stable 1.0 迭代 N/A 稳定版本
qq%e6%88%aa%e5%9b%be20161205103538
支援版本 Linux
使用语言 Python
当前大小 4.1K
开发进度
100%
2016-12-8
Dsync 开发目标及进度
Alpha Beta Stable
A1 B1 v1.0
A1

1.完成对目录监视的功能

B1

1.重写Watchdog相关事件

2.使用pexpect创建rsync同步进程

3.增加配置文件,灵活设置监控与远程目录

4.增加自动安装功能

V1.0

1.Windows平台上使用Cygwin测试

背景故事

谢总有个树莓派,后来谢总跟大D说,在树莓派上搞了个Nginx,于是就有了个问题,能否在检测本地指定目录内文件的活动并自动更新到远程目录。

给谢总推荐过SVN,也推荐过Git,可能谢总觉得都不是很好用。

偶然有一天,大D知道了Python有一个模块——Watchdog,可以用来检测目录下文件的变化,正巧大D也有了类似的需求,那就写一个小工具吧。

开发目标

1.实现对目录的监视。

2.实现在目录内创建文件或文件夹后上传到指定远程目录内。

3.采用配置文件来实现控制被监测目录和远程目录位置。

4.自动化安装所需模块和依赖。

开发平台

Ubuntu 16.04 LTS+Python 2.7,理论兼容Linux各大发行版。

并不打算实现对Windows的兼容,Cygwin能够兼容就可以了。

开发日志

2016-12-8

1.研究了若干天自动安装,还是不搞了,远比使用pip来安装所需依赖麻烦。

2.切换到v1.0正式发布

2016-12-5

1.写好了配置文件功能,读取本地yml配置文件配置远程主机名、登录名、密码、同步目录等选项。

2016-12-4

1.解决了pexpect执行rsync对远程目录同步创建文件时文件名中带空格无法创建的问题。

2.重写了watchdog的创建、删除、修改、移动四个事件。

3.进一步优化代码,模块分离。

4.监控目录并同步远程目录的基本功能已经实现,转入Beta 1阶段,接下来的主要任务就是增加附加功能

2016-12-3

1.已实现对目录的监视,正在重写Watchdog自带的几个事件。

2.利用pexpect模块来多线程执行rsync对远程目录进行同步,但现在遇到文件名如果包含空格导致无法执行的问题。

错误报告

暂无

源代码

源代码已托管在Github,请访问:https://github.com/derek-s/Dsync

也可以在本站直接下载:Dsync-master.zip

下载完成后建议校验文件:

文件: Dsync-master.zip
大小: 2988 字节
修改时间: 2016年12月8日, 12:16:51
MD5: 2FE940BD8BBF393033304F4C91541BAF
SHA1: 0CDC39FA337B6518C231CA793329024AAAF7F24B
CRC32: 0A8C3F15

安装与使用

1.安装依赖

由于使用Python开发,请确保有Python 2.7环境和pip,并请使用pip安装所需要的库。

需要远程目标机上安装有rsync

2.修改配置文件

下载源代码并解压,修改_config.yml文件。

例:

注意

  • 每一配置项的:后面需有一个空格
  • 路径需要将最后一个/带上

3.使用

打开终端运行

正常运行时会有Observer start的提示。

Dsync在Ubuntu与Windows平台上的截图

 

4.备注

代码中

如果需要关闭rsync的详细输出,可以讲上述代码中第三行的logfile=sys.stdout删掉。

需要特别注意

rsync在执行删除操作的时候,会对远程目录内的文件与本地文件相比对,本地不存在而远程存在的文件将会被删除,需要特别注意。

兼容性

本代码在Ubuntu 16.04 LTSWindows 10 + babun中测试通过。

 

版权声明
转载保留版权: 大D技研室 | 《[稳定版本]Dsync——实时监视并改动远程目录程序》
本文链接地址:https://www.dadclab.com/archives/6580.jiecao
转载须知:如果您需要转载本文,请将版权信息,版权授权方式,以及本文的链接地址注明,谢谢合作。
本文被贴上了: , , , 标签