文章目录

  • 背景+需求
  • 安装+使用
    • 下载
    • 安装
    • 使用
    • 解压缩
    • 小结
  • 授人以渔
  • 问题+解决方案
    • bash: ./7zz: cannot execute binary file: Exec format error
      • 现象
      • 解决方案
    • lib.so.6文件
  • 参考

背景+需求

整体需求跟文章【在Linux上使用7z的最高压缩比来压缩文件】中介绍的类似。

我们的服务遇到一个线上问题,最后定位下来是内存问题,dump了文件,但是有3.4G,tar打包+压缩后还有1.4G。但是这个环境网络受限,下载速度非常慢,而且离谱的是第一次耐着性子用Chrome下载,结果文件损坏,还得重新下载。直接原地爆炸。

所以这个时候需求就很明确了:待下载的文件越小越好,这样即使下载出错,重新下载一次的代价也不大;云端的压缩时间和代价反而不重要了。那么这时就需要一个极致压缩的工具。

然后就来到了7zip了。

安装+使用

下载

访问7zip官网,从https://www.7-zip.org/download.html选择相应的版本下载即可。

或者命令行下载,例如:

wget https://www.7-zip.org/a/7z2102-linux-x64.tar.xz

安装

1 解压:

# mkdir 7zip
# mv 7z2102-linux-x64.tar.xz ./7zip && cd 7zip
tar -xf 7z2102-linux-x64.tar.xz

因为解压后的文件和目录都是放在了当前目录,最好单独创建一个文件夹,然后在独立文件夹中解压。

2 安装

将7zz移动到/usr/bin目录下:

cp 7zz /usr/bin/7zz

之后就可以使用了。

如果不想安装,也是可以直接运行使用的。如果不能使用,那么还是考虑安装方案吧。

使用

参考文章2,这里给出个人使用的命令:

./7zz a -m0=lzma2 -mx=9 heap.7z heapDumpFile.hprof稍作解释。、
这里大多数参数都使用了默认值,只指定了压缩算法和压缩等级。
具体含义:
a 操作类型:添加文件到压缩包。
-m0=lzma2 指定压缩算法。算法之间的区别可以查看7zip官方文档,例如7-zip.org/7z.html
-mx=9 压缩等级,最高压缩等级为9,对应windows下的极致压缩。
heap.7z 压缩后的文件名
heapDumpFile.hprof 源文件名字

解压缩

# 压缩
./7zz a archive1.zip subdir# 解压
./7zz x archive.zip

小结

到了这里,基本上上面的需求都满足了,就是用服务器的压缩时间换取更好的网络传输效率。实际中测试下来,3.4G的hprof文件压缩后只有154M,提升非常可观。

授人以渔

基本上面的功能已经可以满足我们的需求了。不过如果后续有另外的需求,或者你的需求跟我们不一样,或者就是想要多学习一些7zip命令等知识,那么可以继续看这一部分。

关于什么是7zz、7za,它们的区别,有哪些命令,每个命令有哪些参数,都是什么含义,最好的文档就是官方文档。

下载的压缩包中,除了7zz文件,还有readme.txt文档和MANUAL文件夹,更多的资料可以查看readme.txt文件,或者用浏览器打开MANUAL文件夹下的start.htm文件,根据自己的需求查看相关页面。比如命令列表就可以查看MANUAL/cmdline/commands/index.htm

问题+解决方案

bash: ./7zz: cannot execute binary file: Exec format error

现象

第一次的时候,直接在解压后的文件夹内直接运行7zz:

./7zz

然后遇到bash: ./7zz: cannot execute binary file: Exec format error错误。后面在本机的虚拟机也遇到了这个问题。不过在写文章的时候,在另一台电脑上尝试复现,结果反而没有问题,神奇。反正如果真的遇到这个问题,可以尝试下面的解决方案。

解决方案

就是一定要放到/usr/bin/目录下才可以。直接运行就是不行。很离谱,不过暂时也没复现,也没查出为什么(文件权限没问题,操作系统和7zz都是64位)。有知道原因的同学欢迎评论交流。

lib.so.6文件

CentOS下报错,网上有类似的解决方案,线上环境,没有乱搞。有需要可以根据报错Google查找解决方案。

参考

本次主要参考文章如下:

参考文章:

  • 7-Zip 首度推出官方支援的 Linux 版本
  • 在Linux上使用7z的最高压缩比来压缩文件

在Linux中使用7zip/7zz相关推荐

  1. 7z linux压缩命令行,教你Centos7中使用7zip压缩命令工具

    教你Centos7中使用7zip压缩命令工具 7-Zip是一个支持7z(它实现了LZMA压缩算法,具有非常高的压缩比).LZMA2.XZ.ZIP.Zip64.CAB.ARJ.GZIP.BZIP2.TA ...

  2. linux解压7z文件,linux 中解压7z文件

    linux 中解压7z文件 更新时间:2017-03-26 00:13:50 linux 解压.解压7z文件方法 安装7z源[root@VM_18_10_centos ~]# sudo yum ins ...

  3. linux一键分区脚本,【Shell】Linux中分区脚本

    后天要中期答辩了,今天只刷了一个题,还没写出来,但是想更新博客,所以只有把之前写的东西贴出来了. 一个用于分区的shell脚本 1 #!/bin/bash #指定脚本解释器路径 2 echo &quo ...

  4. c++ 进程快照_如何在 Linux 中找出内存消耗最大的进程

    很多次,你可能遇见过系统消耗了过多的内存.如果是这种情况,那么最好的办法是识别出 Linux 机器上消耗过多内存的进程. -- Magesh Maruthamuthu(作者) 很多次,你可能遇见过系统 ...

  5. linux的tar中ztvf,linux中的tar命令(2)

    实例4:只将 /tar 内的 部分文件解压出来 命令: tar -zxvf /opt/soft/test/log30.tar.gz log2013.log 输出: [root@localhost te ...

  6. centos6.5 php5.2,Linux中PHP安装与配置(CentOS-6.5:php-5.2.13)

    1 PHP简介     PHP(PHP: Hypertext Preprocessor的缩写,中文名:"超文本预处理器")是一种通用开源脚本语言.语法吸收了C语言.Java和Per ...

  7. java 外部类似_[求指点] 如何用java 实现类似linux中管道调用外部程序的功能

    想写个小程序实现类似linux中管道的功能,创建一个外部子进程,然后主进程不断地写输入给子进程,而后把子进程的返回值取出. 如下的小代码就是从stdin读入一个字符串,调用子进程(cat)返回这个串, ...

  8. linux 修改java版本_Linux 有问必答:如何在 Linux 中改变默认的 Java 版本

    提问:当我尝试在Linux中运行一个Java程序时,我遇到了一个错误.看上去像程序编译所使用的Java版本与我本地的不同.我该如何在Linux上切换默认的Java版本? 当Java程序编译时,编译环境 ...

  9. linux ls 命令 路径,使用ls命令在Linux中使用完整路径列出文件

    许多人会发现,这是重复的问题,但我已经经历了所有问题,然后问及这个主题,但没有为我工作.使用ls命令在Linux中使用完整路径列出文件 我想打印使用ls命令的特定文件格式的完整路径名到目前为止,我发现 ...

  10. linux中的ln属性,linux 常用基础命令 ln 详细介绍

    命令介绍: ln是linux中又一个非常重要命令,ln是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我 ...

最新文章

  1. iOS transform解决连续多次旋转缩放,实现图片旋转缩放效果
  2. UESTC-1057 秋实大哥与花(线段树+成段加减+区间求和)
  3. BK资本管理公司创始人阐述BCH接下来的三种“催化剂”
  4. Leaf:GO语言游戏框架介绍及入门
  5. 布线干货 | 线缆截面积的测量标准
  6. Java之JVM调优案例分析与实战(1) - 高性能硬件上的程序部署策略
  7. 计算任意两个数之间1出现的次数的思维过程
  8. typescript获取数据库数据_肿瘤药敏多组学数据库(GDSC)的数据介绍和获取
  9. python股票历史最低点_Python统计某一只股票每天的开盘,收盘,最高,最低价格!...
  10. Ionic 框架宣布 2019 年将正式支持 Vue 和 React
  11. 矩池云上关于conda的一些使用技巧
  12. erlang 分布式数据库Mnesia 实现及应用
  13. WPS 破解宏 安装VBA VBA for WPS
  14. 分页存储管理系统中内存有效访问时间的计算
  15. 令牌环(Token-Ring)
  16. 麒麟linux怎么安装软件,中标麒麟Linux操作系统怎么安装软件?
  17. html背景颜色渐变代码
  18. SIP12 脚 电磁隔离放大器IC 模拟信号隔离放大器 电磁耦合隔离放大器
  19. 电子科技大学计算机专业考什么,2015年电子科技大学081203计算机应用技术考研专业目录及考试科目...
  20. ubuntu加装固态硬盘设置

热门文章

  1. python压缩视频文件_python压缩图片和视频
  2. Android JNI的调用
  3. 局域网内和局域网间的通信(交换机与路由器)
  4. 视频教程-Visio应用视频教程(上)-Office/WPS
  5. APKTOOL反编译使用教程
  6. 惠普计算机X9W2AV参数,MAX220CPE,MAX220CPE pdf中文资料,MAX220CPE引脚图,MAX220CPE电路-Datasheet-电子工程世界...
  7. lena-ts 图像处理和卷积操作
  8. 华表(cell)的使用总结
  9. 5二十五项反措——防止机网协调事故
  10. 堪比阿里插件的Android Studio插件集合(IDE通用)(下)