The Linux Command Line——19. 归档和备份

The Linux Command Line——19. 归档和备份

 

 

gzip

这个 gzip 程序被用来压缩一个或多个文件。当执行 gzip 命令时,则原始文件的压缩版会替代原始文件。相对应的 gunzip 程序被用来把压缩文件复原为没有被压缩的版本。这里有个例子:

The Linux Command Line——19. 归档和备份

 

 

The Linux Command Line——19. 归档和备份

 

 

bzip2

由bzip2 压缩的文件,用扩展名.bz2 来表示:

The Linux Command Line——19. 归档和备份

 

 

归档文件

一个常见的,与文件压缩结合一块使用的文件管理任务是归档。归档就是收集许多文件,并把它们捆绑成一个大文件的过程。

tar

The Linux Command Line——19. 归档和备份

同步文件和目录

维护系统备份的常见策略是保持一个或多个目录与另一个本地系统(通常是某种可移动的存储设备)或者远端系统中的目录(或多个目录)同步。

rsync这个程序能同步本地与远端的目录,通过使用rsync 远端更新协议,此协议允许 rsync 快速地检测两个目录的差异,执行最小量的复制来达到目录间的同步。比起其它种类的复制程序,这就使 rsync 命令非常快速和高效。

The Linux Command Line——19. 归档和备份

 

 

这里 source 和 destination 是下列选项之一:

? 一个本地文件或目录

? 一个远端文件或目录,以 [user@]host:path 的形式存在

? 一个远端 rsync 服务器,由 rsync://[user@]host[:port]/path 指定

注意 source 和 destination 两者之一必须是本地文件。rsync 不支持远端到远端的复制

首先,清空我们的 foo 目录:

The Linux Command Line——19. 归档和备份

 

 

同步 playground 目录和它在 foo 目录中相对应的副本

The Linux Command Line——19. 归档和备份

 

 

我们包括了-a 选项(递归和保护文件属性)和-v 选项(冗余输出),来在 foo 目录中制作一个 playground 目录的镜像。当这个命令执行的时候,我们将会看到一系列的文件和目录被复制。在最后,我们将看到一条像这样的总结信息:

The Linux Command Line——19. 归档和备份

 

 

说明复制的数量。如果我们再次运行这个命令,我们将会看到不同的结果:

The Linux Command Line——19. 归档和备份

 

 

 注意到没有文件列表。这是因为 rsync 程序检测到在目录 ~/playground 和 ~/foo/playground 之间不存在差异,因此它不需要复制任何数据。

使用 rsync 程序从我们的系统中复制最重要的数据到此外部硬盘上:

The Linux Command Line——19. 归档和备份

 

在这个例子里,我们把/etc,/home,和/usr/local 目录从我们的系统中复制到假想的存储设备中。我们包含了–delete 这个选项,来删除可能在备份设备中已经存在但却不再存在于源设备中的文件,(这与我们第一次创建备份无关,但是会在随后的复制操作中有用途)。

在网络间使用 rsync 命令

The Linux Command Line——19. 归档和备份

 

我们添加了--rsh=ssh 选项,其指示 rsync 使用 ssh 程序作为它的远程 shell。以这种方式,我们就能够使用一个 ssh 加密通道,把数据安全地传送到远程主机中。其次,通过在目标路径名前加上远端主机的名字(在这种情况下,远端主机名为 remote-sys),来指定远端主机。

The Linux Command Line——19. 归档和备份

上一篇:Shell脚本中对字符串、数字、文件与复杂逻辑判断的使用


下一篇:【Tools】Ubuntu20.04安装VMware Tools详解