美文网首页程序员
居于python写的差量同步工具

居于python写的差量同步工具

作者: 数据小菜鸟 | 来源:发表于2018-12-19 10:02 被阅读0次

经常同步外网版本 常用 Rsync,scp 都比较方便
有事部分平台使用ftp 就比较头疼(零散文件多目录多简直就是噩梦,尤其是公司网络渣比就更凉凉)。解决方案 Beyond Compare 远程对比(非完美,但是可行)
另外一种自己写一个python小工具根据文件创建时间和修改去找文件然后用找出的文件直接用ftp上传。自动动手丰衣足食,训练自己动手能力。
同时推荐一个ftp工具 WinSCP

# -*- coding: utf-8 -*-
# xiaoyu chen
# 358860528@qq.com
# 按照时间差量同步工具
# 用于ftp 等没有比较同步的服务器作为辅助

import os,datetime,json,time,shutil


path='./src'
fixtime = 0
outpath = './out'


#判断是否有辅助文件
if os.path.exists("./find.json"):
    ffo = open("./find.json","r+")
    js = json.load(ffo)
    fixtime = js["tt"]
    tft = datetime.datetime.fromtimestamp(fixtime)
    print u"上次更新时间",tft.strftime("%Y-%m-%d %H:%M:%S")
    ffo.close()

#清理老的更新文件
if os.path.exists(outpath):
    #os.getcwd() +
    #del_file(outpath)
    shutil.rmtree(outpath)
    
os.makedirs(outpath)

print "="*20

for dirpath,dirnames,filenames in os.walk(path):
    for ff in filenames:
        fullpath=os.path.join(dirpath,ff)
        
        mtime = os.path.getmtime(fullpath)
        ctime = os.path.getctime(fullpath)
        if ctime > mtime:
            mtime = ctime

        #修改时间和创建比上次大需要更新文件
        #datetime.datetime.fromtimestamp(mtime)
        if  int(mtime) > fixtime:
            #print dirpath,ff
            print u"更新文件:",fullpath
            #print fullpath,mtime,datetime.datetime.fromtimestamp(mtime)
            #写拷贝函数即可
            newpath = fullpath.replace(path,outpath)
            newdir = dirpath.replace(path,outpath)

            if os.path.exists(newdir) == False:
                #print "exists is not",newdir
                os.makedirs(newdir)
                
            shutil.copy(fullpath,newpath)
            


with open("./find.json","w+") as f:
    n = int(time.time())
    fixtime = n
    json.dump({"tt":fixtime},f)
    f.close()

image.png

相关文章

  • 居于python写的差量同步工具

    经常同步外网版本 常用 Rsync,scp 都比较方便有事部分平台使用ftp 就比较头疼(零散文件多目录多简直就是...

  • 同步工具类

    常见同步工具类 闭锁 FutureTask 信号量 栅栏 阻塞队列 构建自己的同步工具类 介绍 同步工具类可以是任...

  • mysql2ch,一个同步MySQL数据到ClickHouse的

    介绍 mysql2ch 是一个用于同步 MySQL 到 ClickHouse 的工具,支持全量同步与增量同步。 特...

  • 13. 同步工具类的使用

    [TOC] 同步工具类,通常利用他们的特性来构建并发安全的类. 常用的同步工具类有: 信号量 闭锁 栅栏 Futu...

  • 2-6-7进程通信、线程

    进程通信是指进程之间的信息交换。 一、低级通信——进程之间的互斥和同步 信号量机制是有效的同步工具,但作为通信工具...

  • 第2章 2-6、2-7进程通信、线程

    进程通信是指进程之间的信息交换。 一、低级通信——进程之间的互斥和同步 信号量机制是有效的同步工具,但作为通信工具...

  • 操作系统——进程通信

    进程通信是指进程之间的信息交换。 1、低级通信——进程之间的互斥和同步信号量机制是有效的同步工具,但作为通信工具缺...

  • rsync+inotify同步备份

    简介 rsync是一个同步工具,支持增量和全量备份。配合inotify可以实现同步备份。 实验准备 192.168...

  • 操作系统:信号量与管程

    第10章:信号量与管程 信号量信号量使用互斥访问条件同步管程经典同步问题哲学家就餐问题读者-写者问题 10.1 信...

  • 多线程(12) — 四种多线程同步工具类

    多线程常见的四种同步工具类有:Semaphore信号量、CountDownLatch 闭锁、CyclicBarri...

网友评论

    本文标题:居于python写的差量同步工具

    本文链接:https://www.haomeiwen.com/subject/kxudkqtx.html