tar 多线程加速打包速度

tar 多线程加速打包速度

安装多线程压缩程序 pigz

 yum -y install pigz


打包压缩测试

tar多线程压缩解压

tar --use-compress-program=pigz -h -cvpf  Homo_sapiens.GRCh38.dna.toplevel.tar.gz *


实测,4核的机器,2G文件用了不到1分钟

 tar --use-compress-program=pigz -cvpf b.tar.gz ./*

top看到系统CPU使用率是390%+


解包测试:


41G 的文件,4核的机器,内存16G

 tar --use-compress-program=pigz -xvpf hs_sale_1126.tar.gz

top命令看到CPU使用率没有压缩的时候那么高,在50% - 80%之间
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
18241 root 20 0 38676 724 576 S 84.3 0.0 3:34.92 pigz

遇到单个大文件的时候,CPU使用率会比较高一点
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
18241 root 20 0 38676 724 576 R 126.2 0.0 6:47.93 pigz

最后发现只用了40分钟就解压完,之前用了超过2个半小时




tar 命令提供了多种方式来排除不需要打包的文件和目录。以下是几种常用的方法:

1. 使用 --exclude 参数

bash
# 排除单个文件或目录
tar -czvf archive.tar.gz --exclude="file.txt" folder/
tar -czvf archive.tar.gz --exclude="node_modules" project/

# 排除多个文件或目录
tar -czvf archive.tar.gz --exclude="*.log" --exclude="temp" --exclude=".git" folder/

# 使用模式匹配
tar -czvf archive.tar.gz --exclude="*.tmp" --exclude="cache/*" source/

2. 使用 -X 或 --exclude-from 从文件读取排除列表

首先创建一个排除列表文件:

bash
# 创建排除列表文件
echo "*.log" > exclude-list.txt
echo "temp/" >> exclude-list.txt
echo ".git/" >> exclude-list.txt
echo "node_modules/" >> exclude-list.txt

# 使用排除列表文件
tar -czvf archive.tar.gz -X exclude-list.txt project/

3. 使用通配符排除特定类型文件

bash
# 排除所有日志文件
tar -czvf archive.tar.gz --exclude="*.log" folder/

# 排除备份文件
tar -czvf archive.tar.gz --exclude="*~" --exclude="*.bak" folder/

4. 排除隐藏文件(以点开头的文件)

bash
tar -czvf archive.tar.gz --exclude=".*" folder/

5. 实际应用示例

bash
# 打包项目目录,但排除常见的开发文件和目录
tar -czvf project-backup.tar.gz \
    --exclude="node_modules" \
    --exclude=".git" \
    --exclude="*.log" \
    --exclude="dist" \
    --exclude=".DS_Store" \
    project-folder/




  • 发表于 2022-04-07 10:32
  • 阅读 ( 9663 )
  • 分类:linux

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
omicsgene
omicsgene

生物信息

739 篇文章

作家榜 »

  1. omicsgene 739 文章
  2. 安生水 365 文章
  3. Daitoue 167 文章
  4. 生物女学霸 120 文章
  5. xun 90 文章
  6. rzx 85 文章
  7. 红橙子 81 文章
  8. CORNERSTONE 72 文章