最近在處理ftp檔案同步的問題
因為先前都是用Dreamweaver由電腦工程師做檔案同步
現在想要使用排程在晚上自動執行
找到了很多軟體, 都不太滿意
而且設定很複雜, 大部份都不支援指令型態
於是就自己寫了一個同步的vbs
步驟如下
※問題來了
下載的檔案最後修改日期變了?!
於是我做了一些檢查
有誰能告訴我, 為什麼都是下載檔案,
修改日期有些會被改變, 有些不會呢??
要看 FTP server 跟 client 有沒有實做 RFC 3659 所定義的 MDTM (File Modification Time) 功能,請參考我的網誌:
MDTM:淺談FTP協定如何保留下載檔案的日期 / 時間
TO powerop:
感謝你的回應
但是我詳讀你的網誌後, 有點疑問
MDTM似乎只是ftp內在查詢檔案的最後修改日期
而MFMT是在處理檔案上傳後, 變更上傳檔案的建立日期或最後修改日期
處理下載檔案的日期應該還是落在ftp client身上
aqr199,
你整理的太好了,幾句話就把重點講完了 XD
沒錯, MDTM 只是 ftp client 去跟 ftp server 查詢檔案時間戳記的指令,最後處理下載檔案的日期還是ftp client的工作。
aqr199,
你所提到的
http://phorum.com.tw/ShowPost.aspx?Appr=1&PostID=9071
其實也不算「錯」,倒是剛好點出通訊協定的「應然」與「實然」 :p
那位 ricado 他那張 RunFTP 的貼圖,看來 RunFTP 似乎跟某些 ftp client 一樣,是用 MDTM 去設定上傳的檔案時間戳記。就 RFC 3659 來說,不應該這樣做,但是你去看 RFC 3659 ,它是 2007 年才出來的,關於 MDTM 那段它也說:
The FTP command, MODIFICATION TIME (MDTM), ...... This command has existed in many FTP servers for many years, ......
所以這麼多年,已經有很多 ftp client 跟 ftp server 發展出各種處理上傳、下載檔案時間戳記的方法。另一種不符合 RFC 但常用的是,利用 directory listing (dir / ls) 列出來的檔案時間,當作下載回來的檔案時間(這其實沒有比 MDTM 準確,因為考量到時區問題, dir 出來的有可能是伺服器當地時間,而 MDTM 規定一定要回傳 UTC +0 時間)
做網管就是這樣,我個人覺得,要瞭解「應然」,盡力去達成,不然就接受「實然」,想辦法配合 :)
TO powerop:
除非是新的東西或者是各廠商規格第一次整合的時候
通常規範經常跟不上實務, 所以有時候只能當作參考
規範跟需求有衝突的時候, 一定是以需求為主吧