如何通过python同步两个ftp服务器

时间:2011-09-06 05:26:30

标签: python ftp synchronization

我有两个FTP服务器a和b,我需要将文件从服务器复制到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服务器的好方法。有没有其他方法可以做到这一点?感谢。

2 个答案:

答案 0 :(得分:3)

对于初学者来说,你有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 []获取输入/输出文件,也可以使用source-host和desition。

享受! :)

答案 1 :(得分:-1)

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