使用硬連結和coreutils的truncate工具shrink大檔案方法一例
一般直接rm大檔案必然會對資料庫伺服器的IO效能造成壓力,因此可以使用coreutils的truncate工具對大檔案進行shrink
該工具安裝方法如下:
#wget
#tar -zxvf coreutils-8.9.tar.gz
#cd coreutils-8.9
#./configure
#make
實驗如下:
[root@test /data]#du -hs S82.test.sql
907M S82.test.sql
對目標檔案建立硬連結:
#ln S82.test.sql S82.test.sql.hdlk
[root@test /data]#l *S82*
-rw-r--r-- 2 root root 950988446 Apr 28 17:09 S82.test.sql
-rw-r--r-- 2 root root 950988446 Apr 28 17:09 S82.test.sql.hdlk
注意 大小為900M左右,因此我們使用coreutils工具集中的truncate命令對大檔案進行shrink,可以寫個指令碼,
內容如下:
#cat truncate.sh
#!/bin/bash
TRUNCATE=/usr/local/bin/truncate
for i in `seq 900 -10 10 `; #從900 開始每次遞減10 ,輸出結果見下面
do
sleep 2
echo "$TRUNCATE -s ${i}M /data/S82.test.sql.hdlk"
$TRUNCATE -s ${i}M /data/S82.test.sql.hdlk
done
開始執行:
./truncate.sh
/usr/local/bin/truncate -s 900M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 890M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 880M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 870M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 860M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 850M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 840M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 830M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 820M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 810M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 800M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 790M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 780M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 770M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 760M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 750M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 740M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 730M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 720M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 710M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 700M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 690M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 680M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 670M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 660M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 650M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 640M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 630M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 620M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 610M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 600M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 590M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 580M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 570M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 560M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 550M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 540M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 530M /data/S82.test.sql.hdlk
........................................................
........................................................
/usr/local/bin/truncate -s 30M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 20M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 10M /data/S82.test.sql.hdlk
shrink收縮後檔案大小為10M左右:
[root@alpha-mongo-140-51 /data]#ll S82*
-rw-r--r-- 2 root root 10485760 Jul 25 13:43 S82.sq_comment.sql
-rw-r--r-- 2 root root 10485760 Jul 25 13:43 S82.sq_comment.sql.hdlk
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2158661/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux---檔案、軟連結於硬連結檔案Linux
- 硬連結和軟連結
- 硬連結和軟連結的區別
- “軟連結”和“硬連結”的區別
- Linux軟連結和硬連結Linux
- linux硬連結和軟連結Linux
- 軟連結和硬連結詳解
- Linux(8) —— 硬連結和軟連結Linux
- Linux 軟連結和硬連結簡介Linux
- 檔案連結
- 簡談linux中軟連結和硬連結的區別Linux
- Python檔案操作方法大總結Python
- 使用awk和sed獲取檔案奇偶數行的方法總結
- 在Linux中,什麼是硬連結和軟連結?Linux
- 軟連結與硬連結的區別
- 軟連線、硬連結 和 i節點(inode)
- 5分鐘讓你明白“軟連結”和“硬連結”的區別
- 使用sed 命令查詢和替換檔案中的字串的方法總結字串
- 軟連結 vs. 硬連結
- 4種大檔案傳輸工具和軟體,用於共享大檔案
- Final Cut Pro中文新手教程 (58) 連結檔案的使用
- pt-archiver工具歸檔和恢復資料一例Hive
- 表空間(資料檔案shrink)收縮示例
- 硬連結與軟連結詳解
- linux 軟硬連結Linux
- SpringBoot專案使用yml檔案連結資料庫異常Spring Boot資料庫
- MC官啟使用軟連結改變檔案位置
- 【ASM】ASM資料檔案和OS檔案(FILESYSTEM)轉移方法總結ASM
- 『學了就忘』Linux基礎命令 — 22、Linux中的硬連結和軟連結Linux
- Linux中軟連結和硬連結之間有什麼區別和聯絡?Linux
- 總結 | 外貿人不可錯過的大檔案傳輸工具!
- 根據網路連線(檔案連結)下載檔案到本地
- Linux大檔案重定向和管道的效率對比總結Linux
- 使用開源工具WarShield保護你的檔案和資料開源工具
- 如何快速傳輸大檔案:4 種大檔案傳輸有效的方法
- 如何快速傳輸大檔案,介紹大檔案快速方法
- 大檔案傳輸的9種方法
- Linux常用基本命令(軟連結與硬連結 )Linux