Linux下高效分卷需結合打包工具(如tar
)與壓縮工具(如gzip
/xz
/bzip2
)的組合,優先選擇管道組合(一邊打包壓縮一邊分卷),避免先壓縮再分割導致的雙倍空間占用。
tar -czvf - /path/to/source | split -b 3G - dataset_part_
(-z
啟用gzip壓縮,-c
創建歸檔,-
輸出到標準輸出;split
按3G大小分割,前綴為dataset_part_
)。tar -cJvf - /path/to/source | split -b 3G - dataset_part_
(-J
啟用xz壓縮)。zip -r -s 3G project_split.zip /path/to/source
(-s
指定分卷大小,最后一個分卷為.zip
,其余為.z01
、.z02
等)。分卷大小需根據存儲介質限制(如FAT32單文件最大4GB、NTFS單文件最大16TB)、傳輸需求(如郵件附件最大25MB)及數據類型(如大文件適合大分卷,小文件適合小分卷)綜合選擇:
利用多核CPU優勢,通過xargs
或GNU parallel
工具并行壓縮/解壓分卷,顯著提升效率:
tar -czvf - /path/to/source | split -b 3G - dataset_part_ | xargs -P 4 -n 1 gzip -9
(-P 4
表示4線程并行,-n 1
表示每個線程處理1個分卷,-9
表示最高壓縮率)。ls dataset_part_*.gz | xargs -P 4 -n 1 gzip -d && tar -xvf dataset_part_*.tar
(先并行解壓所有分卷,再合并解包)。避免先壓縮成大文件再分割的雙倍空間占用問題,采用“打包→壓縮→分卷”的管道流程,直接生成分卷文件:
tar -czvf - /path/to/source | split -b 3G - dataset_part_
此方式僅需原始數據大小的存儲空間(壓縮后),無需額外存儲大壓縮文件。
分卷前后通過哈希工具(如md5sum
、sha256sum
)生成校驗文件,傳輸后驗證分卷完整性:
md5sum dataset_part_* > dataset_checksum.md5
(記錄所有分卷的哈希值)。md5sum -c dataset_checksum.md5
(檢查每個分卷是否與原始哈希值匹配,若有錯誤需重新傳輸)。/etc/sysctl.conf
文件,調整以下參數提升磁盤與內存效率:
vm.swappiness=10
(降低交換區使用傾向,減少磁盤I/O);vm.dirty_background_ratio=10
、vm.dirty_ratio=20
(控制臟頁寫回閾值,平衡內存與磁盤性能)。使用**LVM(邏輯卷管理)**替代傳統分區,實現動態調整分卷大小,避免頻繁重裝系統:
lvextend -L +10G /dev/mapper/vg_name-lv_name
(為邏輯卷增加10G空間)。xfs_growfs /dev/mapper/vg_name-lv_name
(XFS文件系統)或resize2fs /dev/mapper/vg_name-lv_name
(ext4文件系統)。