2017-07-26 126 views
0

我想用批處理mput命令上傳到FTP。但是,我不想做的是上傳一個以前已經上傳的文件,所以我需要每個文件的MD5並將新文件與現有文件進行比較。比較FTP文件和MD5

我需要怎樣的命令?

+1

爲什麼不使用[rsync](https://en.wikipedia.org/wiki/Rsync)?這是2017年,FTP就像發送傳真一樣。 – tadman

+0

如果是這樣的話,他們真的會送你一個艱難的挑戰。 FTP無法計算任何服務器端的內容,因此在知道是否應該上傳文件之前,您必須下載該文件並進行比較,這非常麻煩。 [有一個針對FTP的MD5哈希命令提議](https://tools.ietf.org/html/draft-twine-ftpmd5-00),但由於對MD5的信任幾乎爲零,所以不太可能繼續。 – tadman

回答

1

首先,確保您的遠程服務器支持校驗和計算。許多人不知道。我相信甚至沒有標準的FTP命令來計算遠程文件的校驗和。有很多建議,並有許多專有解決方案。

最新的建議是:
https://tools.ietf.org/html/draft-bryan-ftpext-hash-02

一些可以用來計算MD5校驗和的命令是:XMD5MD5HASH

你可以用WinSCP測試。 WinSCP支持前面提到的所有命令。測試其checksum calculation functionchecksum scripting command。如果他們工作,enable logging並檢查,什麼命令和WinSCP對您的服務器使用什麼語法。

然後你可以在你的命令行FTP客戶端執行命令。你沒有告訴我們,你在用什麼客戶。在常見的Windows或* nix的命令行ftp客戶端,您可以使用quote命令來執行任意的FTP協議命令,如:

quote MD5 filename 

如果您使用的是Windows,你可以使用WinSCP scripting。和GUI一樣,WinSCP會爲你找出使用什麼命令。您只需使用checksum command

checksum md5 index.html 

(我的WinSCP的作者)

但要注意,你最好使用SHA-1。 MD5不再被信任。