2011-09-06 106 views
2

我有兩個FTP服務器a和b,我需要將文件從服務器複製到b服務器。從a下載文件並上傳到b太複雜了,我想通過python編寫腳本在我的桌面上執行此操作,只需在下面鍵入命令即可完成此任務。如何通過python同步兩個ftp服務器

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

但一些谷歌後,仍然找不到一個好方法來同步兩個ftp服務器就像dropbox。有沒有其他方法可以做到這一點?謝謝。

回答

3

對於初學者,您有http://www.csync.org/這是一種rsync(但因爲rsync只適用於SSH而不是FTP),但對於HTTP/FTP傳輸。

如果你不喜歡這種選擇總是有「lftp的」或「curlftpfs」,計算器有一個姐姐,網站提供的答案:

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

如果不給你任何東西,那麼,你始終都在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 [email protected] 
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() 

現在,我不能幫助您更那麼TBH沒有爲你做的一切,我猜你想學嗎?使用sys.argv []來獲取輸入/輸出文件,也可能用於源主機和描述。

享受! :)

+0

哪個選項最快? – Demiurg

-1

這對我來說聽起來像是一份工作rsync。正如名稱所示,它可以遞歸地同步文件和目錄(還可以壓縮和其他內容)。

+0

Per @Torxed,rsync,它可能是衆神的禮物,不支持FTP,只是SSH和它自己的協議。那裏沒有愛。 –