zip文件損壞可能的原因是什麼?

本地用戶機將zip文件上傳到本地伺服器後,zip自動解壓縮,將其中的圖片(jpg)文件都解壓出來。然後在一個固定的時間,將本地伺服器上所有的圖片和zip文件都通過ftp的方式上傳到遠程伺服器上。

上周以前,還沒有任何問題,從本周開始,頻頻出現ftp傳輸中斷的情況,查看log文件,發現傳輸出錯,提示無法讀取本地文件,而且錯誤都是出在上傳某個zip文件的時候,jpg文件上傳沒有任何問題。

我嘗試將本地伺服器上出錯的zip文件下載下來,發現也無法下載,提示EOF錯誤,文件應該已經損壞。我將損壞的zip文件刪除後,繼續啟動ftp服務,上傳可以繼續進行。但是不定期的就會出現一兩個zip文件損壞無法上傳。

首先可以確認的是,本地用戶機上的zip文件沒有問題,剛剛上傳到本地伺服器上時也沒有問題,所有的圖片都已經解壓出來。但是一段時間後,在將文件ftp到遠程伺服器上時,就有可能出問題。目前估算,出問題的概率在10%左右,10個文件可能有1個出錯,所以每天定時ftp的任務都無法完成,都要早晨來了之後,刪除損壞文件,重新開始ftp服務。

這種zip文件損壞的可能原因會是什麼呢,跟硬碟本身有關係嗎,還是其他原因?

順便請教一個ftp命令的問題,我使用wput上傳文件,原始的命令是:

wpu -i /upload.list 遠程伺服器

upload.list文件存儲著我需要上傳的所有文件的URL,格式如下:

10001

10002

10003

……

10001是文件夾的名稱,每個文件夾中有一個zip文件和若干解壓出來的圖片jpg。

我曾經嘗試想設定上傳的時候,只傳jpg文件,而忽略zip文件,但是沒有成功,我的做法時,修改upload.list為如下形式:

10001/*.jpg

10002/*.jpg

但是這樣無法上傳,提示找不到文件,如果我直接用命令行:

wput 1001/*.jpg就沒有問題,路徑寫進文件裡面就不行。

請教一下,如果我想實現上傳時過濾zip文件,應該怎麼做呢?url還是要寫在文件裡面,因為每次上傳都是一個文件夾列表。

謝謝!


貴伺服器硬碟是不是壞了……


zip總是壞掉我也懷疑是 @vczh 說的硬碟掛了。。。

至於你想跳過zip那太簡單不過了

find -type f ! -name *.zip | xargs -i wput {} [url]


檢查過文件系統么?

wput不支持glob,就用find生成列表唄。


推薦閱讀:

TAG:Linux | Ubuntu | 電腦硬體 | ZIP文件格式 |