如何通过Python同步两个FTP服务器
我有两个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 个回答
-1
这听起来像是需要用到 rsync 的工作。顾名思义,它可以递归地同步文件和文件夹(还可以进行压缩和其他一些操作)。
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[]来获取输入和输出文件,还有源主机和目标主机的信息。
祝你好运! :)