热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux系统怎么做备份吗,Linux系统如何做备份

linux的一直是从windows转到linux的用户关心的问题。由于众所周知的原因,有经验的windows用户都养成了用ghost等软件windows的“优良传统”

linux的一直是从windows转到linux的用户关心的问题。由于众所周知的原因,有经验的windows用户都养成了用ghost等软 件windows的“优良传统”,结果这个优良传统也被移植到了linux下。其实ghost用来备份linux也是很不错的,它的压缩功能能够 省下不少的硬盘空间,这点对于硬盘紧张的用户来说的确是相当好用的。不过它也有自己的缺点,那就是必须在DOS下使用,如果只是想要解出某部分,就只 能用windows版的ghost解压出来……,种种因素使得用ghost用来备份linux成为了一件痛苦的事情。

实际上,linux自带的tar和afio就可以很好的完成这个工作,而且使用起来也相当方便,最明显的一点就是,不用为了备份系统而重启计算机。好,言归正传。

[size=18]1、使用tar进行简单的备份和恢复[/size]

1.1备份

tat能够将存档数据写到文件、磁带或者原始磁带设备之中。tar的典型语法如下所示:

tar -[ c | x | t ] [ -pv ] -f device path1 path2 ...

tar需要带一个参数命令,通常c表示创建(create),x表示解压所(extract),t表示测试(test)。选项p指示tar在解压缩时保留

原始文件的所有权和权限。选项v指示tar列出详细操作过程。f选项以及后面的参数指定tar写到给定的设备。所有path1,path2等等参数是要添

加到存档中的目录树或者文件。

例如,要将/usr目录树写到$HOME/Backup/usrbak.tar中,可以使用如下命令:

tar -cf $HOME/Backup/usrbak.tar /usr

如果想要将/usr目录树写到/dev/st0的磁带设备中,可以使用如下命令:

tar -cf /dev/st0 /usr

现在聪明的网友应该已经想到了,想要备份整个linux文件系统的命令是这样:

tar -cf /dev/st0 /

乍看起来的确是这样的,但是,这个命令却实现不了你的意图。首先,这个命令也会备份/proc目录。根据你的内核版本,它将在你的备份中增加数百兆你不需要的内核运行期数据,甚至会引起tar中断或者分段错误(segmentation fault)。

其次,备份根目录/也会备份/mnt目录,其中会包含装载的CD-ROM数据以及任何装载的网络文件系统甚至于装载的windows分区(这是好事,也可能是坏事,取决于你要做什么)。

要备份除了/proc和/mnt之外的根目录,使用下面的命令:

tar -cf /dev/st0 $(ls / | grep -v -e proc -e mnt)

这个命令将备份除了/proc和/mnt之外的根目录。

1.2恢复

创建了一个tar存档文件之后,通常要将每个文件名前面的斜线“/”删除掉。这意味着当恢复文件时,它们将被恢复到tar运行的相对工作目录中去。例如,要将/dev/st0中的磁带恢复到它们的原始路径中,使用下列命令:

cd /: tar -xpf /dev/st0

在恢复过程中可以指定附加的路径。这些路径表示列表中的文件被打包后恢复的路径。允许使用通配符。例如要将/dev/st0磁带中的/usr/X11R6和/usr/local目录树恢复到它们的原始路径,命令如下:

cd /;tar -xpf /dev/st0 'usr/X11r6/*/' 'usr/local/*'

还可以用tee命令将处理的的文件列表在终端显示,并同时将文件列表写到一个文件中,命令如下:

cd /;tar -xpf /dev/st0 'usr/X11r6/*/' 'usr/local/*' | tee /var/log/restored.files

有关使用tar进行更加复杂操作的信息,例如多卷,增量备份和恢复等,可以参看tar的manual

注意:

1、在这里一直没有提及tar的z,j选项。tar

-cz(j)确实能够创建压缩tar的归档文件,不过这两个压缩都是基于数据流的。也就是说如果数据保存在磁带上,而磁带发生错误的几率是很高的,如果遇

到一个无法恢复的位错误,你将不仅失去这个文件,整个磁带也就毁了。

所以,最好只在错误率低的介质,如硬盘上使用z,j选项。这个问题与基于硬件压缩的磁带设备无关,对于这种设备是无须使用软件压缩的。当然对于大部分网友来说都可以加上z,j选项,毕竟大部分人都没有私人的磁带机。

2、文中的示范命令行都是以/dev/st0为备份设备的,如果是要备份到文件,只要将该参数改为文件的路径即可,如$HOME/Backup/sysbak.tar

[size=18]2、使用afio进行简单的备份和恢复[/size]

afio命令与tar命令类似,而且afio的存档能够与支持cpio(详细信息可以man cpio)命令的系统共同操作,afio支持对单个文件的压缩,更适合于利用没有硬件压缩功能的磁带进行压缩备份。

可能你的发行版本没有afio软件包,你可以从获取afio的源代码。

因为afio将文件列表存档为标准输入流,所以afio的作为存档工具的基本语法包含两个命令:

find path1 path2 ...[-opts] || afio -[i|o|t] [-vZ]device

-i命令用来恢复(input from)磁带或者存档,-o命令(output to)用来写入磁带或者存档,-t命令用来测试磁带或者存档。-v选项对处理文件进行列表,-Z选项在文件写入磁带之前用gzip进行压缩。

2.1备份

通常使用find命令来提供afio要处理的文件列表,可以利用find的特殊功能和afio构造一个更专业更灵活的文件存档计划。

最简单的方式,例如要将/usr目录树写到磁带设备/dev/st0中,使用下列命令:

find /usr | afio -o /dev/st0

要进行同样的存档操作,但是将每个文件在写到磁带之前进行压缩,使用下列命令:

find /usr | afio -o -Z /dev/st0

2.2恢复

要将存档恢复到根目录,可使用-i命令代替-o命令:

cd /;afio -i /dev/st0

要恢复压缩的文档,需记住要包含-Z选项:

cd /;afio -i -Z /dev/st0

afio的详细操作与tar命令的详细操作相同。例如,要在恢复存档的同时在终端上显示处理的文件列表,并将列表保存到/var/log目录的一个文件中,命令如下:

afio -i -Z -v /dev/st0 | tee /var/log/restored.files

有关使用afio进行更加复杂操作的信息。可以参见afio的手册。



推荐阅读
  • 视觉Transformer综述
    本文综述了视觉Transformer在计算机视觉领域的应用,从原始Transformer出发,详细介绍了其在图像分类、目标检测和图像分割等任务中的最新进展。文章不仅涵盖了基础的Transformer架构,还深入探讨了各类增强版Transformer模型的设计思路和技术细节。 ... [详细]
  • 服务器虚拟化存储设计,完美规划储存与资源,部署高性能虚拟化桌面
    规划部署虚拟桌面环境前,必须先估算目前所使用实体桌面环境的工作负载与IOPS性能,并慎选储存设备。唯有谨慎估算贴近实际的IOPS性能,才能 ... [详细]
  • 在Java开发中,保护代码安全是一个重要的课题。由于Java字节码容易被反编译,因此使用代码混淆工具如ProGuard变得尤为重要。本文将详细介绍如何使用ProGuard进行代码混淆,以及其基本原理和常见问题。 ... [详细]
  • 1、编写一个Java程序在屏幕上输出“你好!”。programmenameHelloworld.javapublicclassHelloworld{publicst ... [详细]
  • 本文详细介绍如何安装和配置DedeCMS的移动端站点,包括新版本安装、老版本升级、模板适配以及必要的代码修改,以确保移动站点的正常运行。 ... [详细]
  • 为何Compose与Swarm之后仍有Kubernetes的诞生?
    探讨在已有Compose和Swarm的情况下,Kubernetes是如何以其独特的设计理念和技术优势脱颖而出,成为容器编排领域的领航者。 ... [详细]
  • 在1995年,Simon Plouffe 发现了一种特殊的求和方法来表示某些常数。两年后,Bailey 和 Borwein 在他们的论文中发表了这一发现,这种方法被命名为 Bailey-Borwein-Plouffe (BBP) 公式。该问题要求计算圆周率 π 的第 n 个十六进制数字。 ... [详细]
  • 深入解析WebP图片格式及其应用
    随着互联网技术的发展,无论是PC端还是移动端,图片数据流量占据了很大比重。尤其在高分辨率屏幕普及的背景下,如何在保证图片质量的同时减少文件大小,成为了亟待解决的问题。本文将详细介绍Google推出的WebP图片格式,探讨其在实际项目中的应用及优化策略。 ... [详细]
  • java类名的作用_java下Class.forName的作用是什么,为什么要使用它?
    湖上湖返回与带有给定字符串名的类或接口相关联的Class对象。调用此方法等效于:Class.forName(className,true,currentLoader) ... [详细]
  • 终结威金困扰:专业病毒清除工具上线
    为应对广泛传播的威金(Worm.Viking)病毒,北京瑞星科技股份有限公司推出了专用清除工具VirusKiller.scr。此工具旨在帮助用户有效清除此类病毒,保障系统安全。 ... [详细]
  • 本文详细介绍了如何在Apache Kafka中进行Topic级别的配置,包括创建、修改和删除配置参数的具体步骤,并提供了详细的配置属性表。 ... [详细]
  • 【小白学习C++ 教程】二十三、如何安装和使用 C++ 标准库
    【小白学习C++ 教程】二十三、如何安装和使用 C++ 标准库 ... [详细]
  • 本文主要介绍如何在Mac操作系统中配置和安装Yii2的基础应用程序模板,同时提供解决常见安装问题的方法。对于高级或自定义应用模板的搭建,可参阅官方文档。 ... [详细]
  • 深入解析:存储技术的演变与发展
    本文探讨了从单机文件系统到分布式文件系统的存储技术发展过程,详细解释了各种存储模型及其特点。 ... [详细]
  • 在 Ubuntu 22.04 LTS 上部署 Jira 敏捷项目管理工具
    Jira 敏捷项目管理工具专为软件开发团队设计,旨在以高效、有序的方式管理项目、问题和任务。该工具提供了灵活且可定制的工作流程,能够根据项目需求进行调整。本文将详细介绍如何在 Ubuntu 22.04 LTS 上安装和配置 Jira。 ... [详细]
author-avatar
liu
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有