如何使用Python同步两个FTP服务器

3

我有两个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服务器的好办法。还有其他方法吗?谢谢。

2个回答

3
首先,你可以使用类似于rsync的网站http://www.csync.org/进行HTTP/FTP传输(因为rsync仅支持SSH而不是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 []来获取输入/输出文件以及源主机和目的地可能会有所帮助。

祝学习愉快! :)


哪个选项最快? - Demiurg

-1

这听起来像是 rsync 的工作。正如其名称所示,它可以递归同步文件和目录(还可以进行压缩等其他操作)。


根据 @Torxed 的说法,虽然 rsync 可能是神的恩赐,但它不支持 FTP,仅支持 SSH 和自己的协议。在这方面不太友好。 - AL the X

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接