随笔 - 272  文章 - 0  评论 - 283  阅读 - 142万

文件夹自动同步工具

这是我之前开发的文件夹自动同步工具,主要实现开发机和服务器之间的文件夹同步。

项目地址:

 https://github.com/mike-zhang/autoSync

问题描述

在windows下修改代码,到服务器上去编译,但每次都要通过winscp之类的工具拖拽上去(当然你也可以通过scp命令行的方式)。

每次修改的文件很少,而且可能位于不同的目录,每次都重复覆盖文件的操作感觉比较麻烦,所以开发了这个自动文件夹自动同步工具。

当然这个工具也可以用于两台linux服务器之间的文件夹同步。

工具介绍

该工具的原理就是监控本地文件状态,根据捕捉到的事件触发相关的动作,通过命令操作实现文件夹的同步。

配置文件说明:

host : 服务器地址
sshPort : 服务器ssh端口
user : 用户名
password : 密码
localDir : 需要同步的文件夹
remoteDir : 同步到服务器的文件夹
fileExcept :不同步的文件

示例代码配置文件:

复制代码
<config>
    <host>127.0.0.1</host>
    <sshPort>22</sshPort>
    <user>root</user>
    <password>123456</password>
    <localDir>.</localDir>
    <remoteDir>/tmp/t1</remoteDir>

    <fileExcept>
        <file>f1.txt</file>
        <file>data/f2.txt</file>
    </fileExcept>

</config>
复制代码

依赖库:

paramiko :ssh操作库

watchdog :用于监控本地文件夹状态

可以通过pip方式安装,命令如下:

pip install paramiko
pip install watchdog

工具使用示例如下:

$ python autoSync.py default.xml

讨论

1、如果想以单独的exe文件共享给朋友该怎么操作?

可以通过pyinstaller打包为单独的二进制文件,命令如下: pyinstaller.py -F autoSync.py

exe位于 autoSync/dist 目录下

pyinstaller地址:https://github.com/pyinstaller/pyinstaller 

 2、如需使用rsync进行同步可参考我之前的博文: 

http://www.cnblogs.com/MikeZhang/p/rsyncExample_20160818.html

好,就这些了,希望对你有帮助。

本文github地址:

https://github.com/mike-zhang/mikeBlogEssays/blob/master/2017/20170617_文件夹自动同步工具.rst

欢迎补充 

posted on   Mike_Zhang  阅读(4024)  评论(11编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
阅读排行:
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· DeepSeek “源神”启动!「GitHub 热点速览」
· 上周热点回顾(2.17-2.23)
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

点击右上角即可分享
微信分享提示