大批次檔案遷移解決方案
在我們日常工作中,有很多的時候需要進行檔案遷移,但是諸如10T之類的大檔案(裡面包含若干小檔案的時候),我們如果單單使用CP的命令進行遷移的話,
那麼他的效率經過測試,1分鐘最多也就1G之內的效率。所以如何提高遷移效率呢?我們就需要使用併發執行的方式進行
比如說/data目錄中有100個資料夾需要遷移到本機器的/data2目錄下。如何開展?
簡單的來說:cp -r /data/ /data2 即可。但是這樣遷移的話,就會消耗大量的時間,因為在/data下面還有很多資料夾,逐級目錄,然後雜湊的一些小檔案。
據統計,效率應該在1G每分鐘,那麼線上遷移10T消耗大約為10000分鐘,約為7天,不包含之間有效率降低。
那麼怎麼做才能加快遷移效率呢?很顯然那就是多開CP命令,將伺服器的IO全部呼叫起來。
如何開?
首先/data目錄下面有幾百個目錄,那麼我們可以進行目錄的提取如ls -l |awk '{print $9}' >> Folder.txt
編寫批次遷移指令碼
那麼他的效率經過測試,1分鐘最多也就1G之內的效率。所以如何提高遷移效率呢?我們就需要使用併發執行的方式進行
比如說/data目錄中有100個資料夾需要遷移到本機器的/data2目錄下。如何開展?
簡單的來說:cp -r /data/ /data2 即可。但是這樣遷移的話,就會消耗大量的時間,因為在/data下面還有很多資料夾,逐級目錄,然後雜湊的一些小檔案。
據統計,效率應該在1G每分鐘,那麼線上遷移10T消耗大約為10000分鐘,約為7天,不包含之間有效率降低。
那麼怎麼做才能加快遷移效率呢?很顯然那就是多開CP命令,將伺服器的IO全部呼叫起來。
如何開?
首先/data目錄下面有幾百個目錄,那麼我們可以進行目錄的提取如ls -l |awk '{print $9}' >> Folder.txt
編寫批次遷移指令碼
#!/bin/bash
cat Folder.txt.txt|while read line
do
{
cp -r $line /data2/
}&
done
這個指令碼就是進行併發執行CP命令。如果是不在後面加&那麼時間還和CP 一樣,但是加了& 就以後臺程式方式執行, 迅速執行下一個CP命令。
如果100個資料夾,那麼我們可以把時間縮短10倍。
這樣是不是很簡單的呢?
同時遷移完成之後怎麼進行檔案一致性校驗的呢?這裡介紹一個MD5檔案校驗。
MD5演算法常常被用來驗證網路檔案傳輸的完整性,防止檔案被人篡改。MD5 全稱是報文摘要演算法(Message-Digest Algorithm 5),此演算法對任意長度的資訊逐位進行計算,產生一個二進位制長度為128位(十六進位制長度就是32位)的“指紋”(或稱“報文摘要”),不同的檔案產生相同的報文摘要的可能性是非常非常之小的。
在Linux或Unix上,md5sum是用來計算和校驗檔案報文摘要的工具程式。一般來說,安裝了Linux後,就會有md5sum這個工具,直接在命令列終端直接執行。
#!bin/sh
cat Folder.txt|while read line
do
{
find $line -type f -not \( -name '.*' \) -exec md5sum {} \; >>$line.txt
}&
done
這樣每個資料夾會生產一個檔案,裡面包含了所有檔案的資訊,
然後2個目錄的檔案進行 diff對比即可。
是不是簡單,方便很多的呀!
cat Folder.txt.txt|while read line
do
{
cp -r $line /data2/
}&
done
這個指令碼就是進行併發執行CP命令。如果是不在後面加&那麼時間還和CP 一樣,但是加了& 就以後臺程式方式執行, 迅速執行下一個CP命令。
如果100個資料夾,那麼我們可以把時間縮短10倍。
這樣是不是很簡單的呢?
同時遷移完成之後怎麼進行檔案一致性校驗的呢?這裡介紹一個MD5檔案校驗。
MD5演算法常常被用來驗證網路檔案傳輸的完整性,防止檔案被人篡改。MD5 全稱是報文摘要演算法(Message-Digest Algorithm 5),此演算法對任意長度的資訊逐位進行計算,產生一個二進位制長度為128位(十六進位制長度就是32位)的“指紋”(或稱“報文摘要”),不同的檔案產生相同的報文摘要的可能性是非常非常之小的。
在Linux或Unix上,md5sum是用來計算和校驗檔案報文摘要的工具程式。一般來說,安裝了Linux後,就會有md5sum這個工具,直接在命令列終端直接執行。
#!bin/sh
cat Folder.txt|while read line
do
{
find $line -type f -not \( -name '.*' \) -exec md5sum {} \; >>$line.txt
}&
done
這樣每個資料夾會生產一個檔案,裡面包含了所有檔案的資訊,
然後2個目錄的檔案進行 diff對比即可。
是不是簡單,方便很多的呀!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28869493/viewspace-2138701/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- EntityFramework Core併發遷移解決方案Framework
- iOS 資料庫升級資料遷移解決方案iOS資料庫
- 阿里雲釋出遷移解決方案,“遷移上雲”這件事有專業的人做阿里
- XTTS系列之一:U2L遷移解決方案之XTTS的使用TTS
- 如何分發大檔案、大檔案傳輸解決方案
- 前端JS 下載大檔案解決方案前端JS
- 專案遷移URL解決方案
- 檔案批次查詢複製匯出,按檔名批次查詢檔案,按檔案內容批次查詢檔案
- 批次刪除檔案
- 大檔案傳輸解決方案:分片上傳 / 下載限速
- md檔案批次轉htmlHTML
- antd+react專案遷移vite的解決方案ReactVite
- sqlserver大數批次update時死鎖的問題及解決方案SQLServer
- linux批次find查詢檔案並批次替換覆蓋該檔案Linux
- mysql 大表mysqldump遷移方案MySql
- 批次修改檔案字尾名
- 批次做成畫像dummy檔案
- python——批次移動檔案Python
- Oracle 控制檔案損壞解決方案Oracle
- 大檔案傳輸解決方案,不應該只看吞吐量
- 【MySQL篇】Navicat匯入SQL大檔案報錯終極解決方案MySql
- 外貿VIP社群:郵件無法傳送大檔案的解決方案
- shell指令碼之批次清空檔案指令碼
- find 批次修改檔案後輟名
- 批次檔案重新命名的方法
- python之批次移動檔案Python
- MSSQL Server 遷移至 ORACLE解決方案SQLServerOracle
- win10批次檔案改名方法 win10系統下如何批次重新命名檔案Win10
- git提示檔案有修改但實際檔案無修改解決方案Git
- Java 讀檔案寫檔案 韓文 中文 亂碼問題解決方案Java
- 資料檔案遷移
- asp.net 上傳大檔案大小控制方案ASP.NET
- Win10如何批次重新命名檔案 Win10批次重新命名檔案教程詳解Win10
- 支援對批次檔案加密的加密軟體方案?根源杜絕企業重要檔案洩密,福建風奧科技加密
- iGuard和NFS檔案同步的解決方案NFS
- Linux下日誌檔案過大解決方案Linux
- 檔案自動化解決方案:Deliver Express for MacExpressMac
- PDF檔案批次列印工具:BatchOutput PDF for MacBATMac