Unix shell解決實際問題指令碼(2)

sembh發表於2011-10-23

處理檔案速度比較快的指令碼方法:

方法1:function while_read_line_bottom_fd_out

{

>$OUTIFILE

exec 4

exec 1>$OUTFILE

while read LINE

do

echo "$LINE"

done < $INFILE #迴圈結束處,重定向輸入

exec 1

exec 4>&-

}

處理檔案速度比較慢的指令碼方法:

方法2:function while_read_line_cmdsub2_fd_in

{

>$OUTFILE

exec 3

exec 0

while LINE=$(line)

do

echo "$LINE" >>$OUTFILE

done

exec 0

exec 3>&-

}

使用檔案描述符,處理速度可以快10ms.

用以上兩種方法處理 1MB大小的檔案,方法1用了0.30s,方法2用了8m35.62s.

一些檔案處理技術會浪費大量的CPU時間,大多數浪費的時間花費在不必要的變數賦值以及連續開啟,關閉同一個檔案上,使用管道對迴圈時也有負面影響,管道使用的檔案大小最大不能超過2048個字元。

##########################

(1)ftp:mput:上傳,mget下載,nlist:獲取目錄

(2)為避免在ftp自行化指令碼中編寫硬密碼形式的指令碼,通常需要建立密碼檔案,然後再引用該密碼檔案當中的使用者名稱,密碼等,這個密碼檔案只有root使用者才有許可權讀寫。

############################

分散式資料倉儲需要用到一種很重要的技術:遠端管理處理資料。

分散式資料倉儲3種型別:

(1)業務分佈在不同地域,不同生產線,所謂的全域性資料庫(整個業務範圍整合後的資料),區域性資料庫(遠端站點提供處理資料)

(2)邏輯上看是一個資料倉儲,但物理上看,分佈在不同的處理器上。

(3)組織管理上各自獨立部門無關聯的資料倉儲。

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24214296/viewspace-1055901/,如需轉載,請註明出處,否則將追究法律責任。

相關文章