Linux下 自定义多线程并发快速压缩解压缩脚本
2023-12-23 08:44:35
文章目录
- 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.
文章来源:https://blog.csdn.net/seaneer/article/details/135158412
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!