Linux中文件/文件系统的压缩、打包和备份总结(基于rhel7)

Linux有哪些压缩工具可供选择

按压缩比:xz>bzip2>gzip,按压缩时长:gzip<bzip2<xz,另外还有zip可以选择。

gzip只负责压缩没有打包功能,所以常常和打包工具tar联用,如果单独用gzip要注意两点:①只能对单个文件进行压缩;②默认用压缩后的文件替换原来的文件

我该如何选择这些压缩工具?

这确实是一个问题,最优的压缩工具需要反复尝试,每个人都将压缩工具用于不同的目的。

[En]

This is indeed a problem, the optimal compression tool needs to be tried again and again, and everyone uses the compression tool for different purposes.

例如,对于通常未读的服务器日志文件,我们希望使其尽可能小。如果只考虑体积,自然应该选择压缩程度更高的工具。但如果我们想要在更短的时间内压缩,同时拥有更小的尺寸,我们可能不得不选择功能更强大的程序,并用更高的计算能力来支持它。

[En]

For example, for server log files that are often unread, we want to make it as small as possible. If you only consider the volume, you should naturally choose a tool with higher compression. But if we want to be able to compress in less time while having a smaller size, we may have to choose a more powerful program and support it with higher computing power.

如果只是一般应用,我觉得gzip和tar命令连用完全能够满足大多数需求。

Linux打包命令tar

打包并压缩:tar -cvzf filename.tar.gz

查询包中的文件:tar -vtzf filename.tar.gz

解压缩 tar -xzvf filename.tar.gz # 解压缩后的文件放在哪取决于你当前的工作目录。如果你不想在工作目录下解压缩文件请用 -C参数指定解压缩的路径!

强烈建议 -f参数放在最后,如果是不太熟悉tar命令的朋友甚至可以把 -f参数与之前的几个参数分开写,如:tar -cvz -f filename.tar.gz 因为系统会认为-f后面接的是要使用的文件名,如果把参数f放在前面,有可能会造成文件名设置不正确的情况。

xfsdump和xfsrestore

xfsdump -f filename.dump dir[filesystem]

xfsrestore -f filename.dump 恢复出来的文件所放路径

这两个工具中的一个负责备份,另一个负责恢复。

[En]

One of these two tools is responsible for backup and the other is responsible for restore.

xfsdump默认只对整个文件系统(你可以把它看成整个分区,但这种说法并不严谨)进行备份,但可以追加 -s 参数指定备份某个目录(相对路径)或文件。xfsrestore想恢复多个文件或目录可以追加 -i 参数通过互动模式将指定的文件或路径释放到指定的目录。

备份/boot/grub2这个目录,如不指定备份级别系统默认level 0(全量备份)

这两个命令有以下限制:

  • 只支持xfs系统
  • 仅在挂载的文件系统上操作
    [En]

    operate only on mounted file systems*

  • 只能以root用户身份操作

它们的特点是支持增量备份(但至少需要一个完整备份才能创建额外的备份),额外备份的优点和缺点是显而易见的。

[En]

They are characterized by support for incremental backups (but at least one full backup is required before additional backups can be created), and the advantages and disadvantages of additional backups are obvious.

  • 优点:完全备份后,每次添加的数据量不会太大,缩短了备份时间,减少了备份量。
    [En]

    benefits: after a full backup, the amount of data added each time will not be too large, which shortens the backup time and reduces the backup volume.*

  • 缺点:在恢复数据时,需要按顺序恢复完整备份,然后从远和近按顺序恢复额外的备份1和2。恢复数据很麻烦。
    [En]

    disadvantages: when restoring data, you need to restore full backups sequentially, and then restore additional backups 1 and 2 sequentially from far and near. It is troublesome to recover the data.*

但是,这一缺点可以通过定期完整备份来缓解,例如每周一次的定期完整备份和两次完整备份之间的增量备份。

[En]

However, this disadvantage can be mitigated by regular full backups, such as regular full backups once a week and incremental backups between two full backups.

已知的问题:我不知道与xfsdump相关的备份删除工具,只能通过rm命令删除备份文件,造成xfsdump备份时写入/var/lib/xfsdump/inventory的信息无法同步更新,输入xfsdump -I 仍旧能够看到已不存在的备份信息。谁知道这个问题该怎么规避希望不吝赐教!

dd命令

dd if=”input_file” of=”output_file” bs=”block_size” count=”number”

dd是一个非常有意思的命令,它默认是一个扇区一个扇区读写的。如果用它来备份一个文件系统,它会把没有用到的扇区也读取写入备份中,这就会使备份的文件和原来的文件一模一样。这种”忠实”使得它可以不考虑文件系统,读到什么就写什么。

观察/dev/sda1文件系统大小(其实就挂载在/boot目录上),在虚拟机中新添加一个硬盘/dev/sdb,容量不小于前者的大小,用dd将/sda1完整地备份至新硬盘中

最后的tips:文件的后缀名对于Linux系统来说没任何意义,但对人来说是有意义的。我们可以根据文件的后缀名了解文件是什么类型的,该用什么命令对这个文件进行操作。

比如,tar.gz告诉我们这个包是用tar命令生成并用gzip压缩的,解压缩的时候一定要选用正确的程序,否则就会出错。

Original: https://www.cnblogs.com/randyszone/p/16263315.html
Author: randy198
Title: Linux中文件/文件系统的压缩、打包和备份总结(基于rhel7)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/523629/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球