【问题标题】:how to sync two ftp server by python如何通过python同步两个ftp服务器
【发布时间】:2011-09-06 05:26:30
【问题描述】:

我有两个FTP服务器a和b,我需要将文件从a服务器复制到b服务器。从a下载文件并上传到b太复杂了,我想用python写一个脚本在我的桌面上做这个,只需输入下面的命令就可以了。

 python syncftp.py a.com(source server) folder(folder name in source server) 
        b. com(destination server) folder(destination folder name) 

但经过一番谷歌,仍然找不到像 Dropbox 一样同步两个 ftp 服务器的好方法。有没有其他方法可以做到这一点?谢谢。

【问题讨论】:

    标签: python ftp synchronization


    【解决方案1】:

    对于初学者来说,http://www.csync.org/ 有点像 rsync(但由于 rsync 仅适用于 SSH 而不是 FTP)但适用于 HTTP/FTP 传输。

    如果你不喜欢那个选项,总是有“lftp”或“curlftpfs”,stackoverflow 有一个姊妹站点可以提供你的答案:

    https://serverfault.com/questions/24622/how-to-use-rsync-over-ftp

    如果这没有给你任何东西,那么你在 python 中总是有 ftplib: http://docs.python.org/library/ftplib.html

    from ftplib import FTP
    ftpretr = FTP('get.ftp.com')   # connect to host, default port
    ftpretr.login()               # user anonymous, passwd anonymous@
    ftpretr.retrbinary('RETR README', open('README', 'wb').write)
    ftpretr.quit()
    ftpsend = FTP('send-to.ftp.com','login','password')
    ftpsend.storbinary('STOR todo.txt', open('README','rb'))
    ftpsend.quit()
    

    现在,如果不为您做所有事情,我就帮不了您了,我猜您想学习吗?使用 sys.argv[] 来获取输入/输出文件,也可能用于源主机和目标。

    享受吧! :)

    【讨论】:

    • 哪个选项最快?
    【解决方案2】:

    对我来说,这听起来像是 rsync 的工作。顾名思义,它可以递归地同步文件和目录(也包括压缩和其他东西)。

    【讨论】:

    • Per @Torxed,rsync,可能是神的礼物,不支持 FTP,只支持 SSH 和它自己的协议。那里没有爱。
    猜你喜欢
    • 1970-01-01
    • 2013-11-04
    • 1970-01-01
    • 2011-08-23
    • 1970-01-01
    • 2021-02-17
    • 1970-01-01
    • 1970-01-01
    • 2011-08-19
    相关资源
    最近更新 更多