Linux下 自定义多线程并发快速压缩解压缩脚本


  • Linux下 自定义多线程并发快速压缩解压缩脚本

Linux下常用的tar工具无法支持并行 压缩和解压,对于大量小文件的解压缩,可借助pigz工具实现多线程并行工作,实现更为高效的压缩和解压缩。


自定义多线程压缩解压缩脚本

首先安装 pigz创建脚本 mypigz

#! /bin/bash
name=$1
dir=$2

function pin_thread2core() 
{
    ps -efT | grep pigz | grep -v "grep"

    pid=$(ps -efT | grep pigz | grep -v "grep" | awk '{print $3}')
    echo $pid

    coreid=2

    for val in $pid
    do
        echo "taskset -cp $coreid $val"
        taskset -cp $coreid $val
        ((coreid++))
    done
}

cmdline=`cat  /proc/cmdline`
coremask=${cmdline#*isolated_cores=}
echo coremask: $coremask

if [ "$coremask"x = x ]; then
 echo "Invalid coremask"
 coremask=1-10
fi

if [ $# -ge 2 ];then
    #压缩
    echo "start compress"
    time taskset -c $coremask tar cf - $dir | taskset -c $coremask pigz -6 -p 10 -k > $name.tar.gz &
    pin_thread2core
else
    #解压
    echo "start decompress: $name"
    time pigz -p 10 -d $name & 
    pin_thread2core  
    tarname=$(basename $name .gz) 
    wait
    time taskset -c $coremask tar xf  $tarname
fi

wait

使用

#压缩
./mypigz 文件名 目录
#解压
./mypigz 压缩包名

The End.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

月光技术杂谈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值