場景: 我必須將大約3000個文件(每個服務器30到35 MB)從一臺服務器轉移到另一臺服務器(兩臺服務器都是IBM-AIX服務器)。 這些文件格式爲.gz格式。使用gunzip命令將它們解壓縮到目的地。非順序ftp腳本
我現在這樣做的方式: 我製作了包含每個500個文件的ftp腳本的.sh文件。這些.sh文件運行時,將文件傳輸到目標。在目的地,我一直在檢查有多少文件已經到達,只要100個文件到達,我就爲這100個文件運行gunzip,然後再爲下一個100個文件運行相同的文件,等等。爲了節省時間,我運行了一批100個gunzip。
是什麼在我的腦海: 我在尋找一個命令或將我的文件FTP到目的地,只要100個文件被轉移他們開始爲解壓但這個任何其他方式的解壓縮不應該暫停其餘文件的傳輸。
腳本,我嘗試:
ftp -n 192.168.0.22 << EOF
quote user username
quote pass password
cd /gzip_files/files
lcd /unzip_files/files
prompt n
bin
mget file_00028910*gz
! gunzip file_00028910*gz
mget file_00028911*gz
! gunzip file_00028911*gz
mget file_00028912*gz
! gunzip file_00028912*gz
mget file_00028913*gz
! gunzip file_00028913*gz
mget file_00028914*gz
! gunzip file_00028914*gz
bye
在上面的代碼的缺點是,當
! gunzip file_00028910*gz
線正在執行時,用於下一個批次即FTP爲(file_00028911 ftp的* gz)已暫停,因此會浪費大量時間並損失帶寬利用率。 The!標記用於在ftp提示符下運行操作系統命令。
希望我已經正確地解釋了我的方案。如果我得到一個解決方案,如果任何一個解決方案已經有答案,將更新帖子。
Regards Yash。
你可以使用rsync?另外,scp可以複製動態壓縮(這是選項「-C」)。 –