`

Linux备份全攻略(原创)

阅读更多

系统备份是系统管理工作中十分重要的一个环切,本文详细介绍了各种Linux系统的备份方法,相信对大家的日常管理工作有所帮助。

备份是一项重要的工作,但是很多人没有去做。一旦由于使用不当造成数据丢失,备份就成了真正的救命者。本文将讨论设置备份的策略和如何选择备份介质,并介绍用于备份的tar和cpio工具。

设置备份策略

设置备份策略和计划可以增加进行备份的可能性。备份开始前,要确定备份哪些数据、备份的频率和使用什么样的介质进行备份。备份的时候,应该进行完全备份。

备份通常安排在空闲时间进行。在大多数系统中,由于此时用户数量最少,所以打开的文件也最少。由于备份要占用一些系统资源,运行备份时用户会发现系统反应迟钝。

如果Linux计算机只有一个使用者,可以一个星期或一个月对整个系统备份一次。如果有关键性的文件,就应该有计划地把这些文件拷贝到一个可移动的磁盘中。

备份之前,首先要确保正确地设置备份设备。大多数磁带备份系统在安装时可以发现是否正确。系统启动后,打开一个终端窗口并且输入下面的命令: 

$dmeg | less

滚动列表,并从中寻找你的磁带系统的驱动。如果没有发现,就需要加载一个组件驱动程序。

如果运行Linux服务器,就要制定一个备份计划,但这并不意味着每天要对所有的东西都备份。系统中只有一部分东西需要每天备份,下面先介绍下目录结构及备份策略: 

目录结构:

/etc
包含所有核心配置文件。这其中包括网络配置、系统名称、防火墙规则、用户、组,以及其他全局系统项。
/var
包含系统守护进程(服务)所使用的信息,包括 DNS 配置、DHCP 租期、邮件缓冲文件、HTTP 服务器文件、db2 实例配置,等等。
/home
包含所有用户的默认用户主目录。这包括他们的个人设置、已下载的文件和用户不希望失去的其他信息。
/root
是根(root)用户的主目录。
/opt
是安装许多非系统文件的地方。IBM 软件就安装在这里。OpenOffice、JDK 和其他软件在默认情况下也安装在这里。
有些目录是应该考虑不 备份的。
1. /proc
应该永远不要备份这个目录。它不是一个真实的文件系统,而是运行内核和环境的虚拟化视图。它包括诸如 /proc/kcore 这样的文件,这个文件是整个运行内存的虚拟视图。备份这些文件只是在浪费资源。
2. /dev

包含硬件设备的文件表示。如果计划还原到一个空白的系统,那就可以备份 /dev。然而,如果计划还原到一个已安装的 Linux 系统,那么备份 /dev 是没有必要的。

备份策略:

用户文件:每天都要对/home目录中的用户文件进行备份。
配置文件:/etc和/var目录中的配置文件不需要频繁备份,每个星期或每月备份一次即可,主要取决于配置更改的频繁程度。
程序文件:/usr和/opt目录中的程序文件很少发生变化,安装后做一次备份即可。通常情况下,程序文件可方便地从原始安装盘中恢复。 


选择备份介质

把备份存到哪里有多种选择。下面介绍一些可选择的备份介质:

软盘:如果要把重要文件快速备份,或者将其带到家中,这时软盘仍旧是一种可选的备份介质。

光盘写入器:随着光盘写入器变得越来越可靠,价格也越来越低,光盘本身也非常便宜。选用此项的一个好处是光盘不容易被损坏,它备份的可靠性很高。使用光盘写入器有两点不利因素:它们速度较慢,并且只能保存大约650MB。

可重写的光盘:可重写光盘驱动器比光盘写入器要贵得多,工作方式与其类似。但是,这些光盘是可被重写的,并且它比只能写一次的光盘贵许多。可重写光盘其它的特性都与光盘写入器类似。

Jaz 和Zip:Zip驱动器很流行,已经成为许多PC机的标准配置,同时它的磁盘和驱动器也都不贵。它一张磁盘可容纳100MB的数据,是一种用于快速、可移 动备份的很好选择。Jaz磁盘可以容纳上G字节的数据,并且使用更先进的技术以获得更好的表现。Jaz驱动器和Jaz磁盘都比较贵。Jaz和Zip的缺陷 是都容易损坏,并且保持时间相对要短。

磁带机:磁带备份设备是大多数Linux服务器的标准配置。磁带是可靠的,并且很少出现错误,它 几乎比其它介质存储时间都要长。对于点对点工作组网络和中型网络,Travan和高端数字音频磁带(DAT)通常是最好的选择。Travan驱动器经过压 缩可以处理8GB数据,这对于具有5-10个PC机的小型网络来说足够了。DAT驱动器有更好的表现,可以处理24GB的数据。DAT驱动器比 Travan驱动器昂贵,但它磁带的价格要比Travan QIC磁带卷便宜。

高端磁带:选择高端磁带可能是相当贵的。与Travan 或DAT相比,这种驱动器有更大的容量和更高的速度。三种广泛使用的驱动器类型是:Sony Advanced Intelliget Tape ( AIT ) 、Quantum Digital Linear Ta p e ( DLT )和Exabyte Mammoth 8mm。它们最少可以容纳20GB的不压缩数据,并且具有更高的数据传输能力。

用于备份的Tar

备份工具Tar是以 前备份文件的可靠方法,几乎可以工作于任何环境中,Linux老用户一般都信赖它。 Linux中以.tar结尾的文件都是用tar创建的。它的使用超出了单纯的备份,可用来把许多不同文件放到一起组成一个易于分开的文件。tar是从 Tape ARchiver备份工具起步的。包含在Linux中的GNU tar工具简便易用,包含了一个用来压缩的选项,且支持不断增加的备份。tar是一个命令行的工具,没有图形界面。使用Konsole或Kvt打开一个终 端窗口,接下来是一个简单的备份命令:

  $tar cvf - /home > /temp/backup.tar

这个命令在/tmp目录中创建一个backup.tar的文件,/home目录中所有内容都包含在其中。接下来可以把tar文件拷贝到备份磁盘中。使用简单备份时,如果要使用压缩功能,改为下面命令: 

  $tar czvf - /home > /tmp/backup.tgz

上面扩展名. tgz指出这是一个压缩文件。下一个例子可以用来直接备份到一个安装好的Jaz驱动器中,但这样做要确定有足够的空间: 

  $tar czvf /mnt/jaz/backup.tgz - /home

对于一个磁带驱动器,使用设备名称: 

  $tar czvf /dev/st0/backup.tgz - /home

如果有一个备份非常大,可以使用多卷选项。但是,这样做就不能使用压缩。当第一个磁盘或磁带填满后,tar将提示插入另一张: 


       $tar cvMf /dev/st0/5mar2000.tar -home


要恢复备份使用下面的命令,以Jaz磁盘为例: 

  $tar xzvf /mnt/jaz/5mar2000.tgz /home

表1列出了tar主要功能参数。此外还有很多可选参数,本文不再详述。 


表1
备份工具tar可以用crontab工具设置成基于时间的有规律地运行。例如,每晚2点把/home目录备份到SCSI磁带驱动器中,只要将下面语句添加到root的crontab中即可:


 00 02 * * * tar cvf /dev/st0/homefiles.tar - /home



要使用 tar 来把除 /proc 目录之外的整个文件系统备份到 SCSI 磁带设备:

             $tar -cpf /dev/st0 / --exclude=/proc

在 上面的例子中,-c 开关表示归档文件正在被创建。-p 开关表示我们希望保留文件许可权限,这对良好的备份来说是很关键的。-f 开关指向该归档文件的文件名。在本例中,我们使用的是原始磁带设备 /dev/st0。/ 表示我们想要备份的内容。既然我们想要备份整个系统,因此把这个开关指定为根(root)。当把 tar 指向一个目录(以 / 结尾)时,它会自动递归。最后,我们排除了 /proc 目录,因为它没有包含需要保存的任何内容。如果单盒磁带容纳不下这个备份,我们需要添加 -M 开关(本例中没有显示)以进行多卷备份。


要还原一个或多个文件,可以使用带提取开关(-x)的 tar 命令:
             $tar -xpf /dev/st0 -C / 

-C / 表明我们想要让还原从 / 开始.-C 开关使我们的当前目录不再相关。 


您可能会经常使用的另外两个 tar 命令是 -t 和 -d 开关。-t 开关列出某个归档文件的内容。-d 开关将归档文件的内容与系统上的当前文件作比较。

为 便于操作和编辑,您可以将想要归档的文件和目录放进一个文本文件中,然后在命令行通过 -T 开关引用这个文本文件。这些文件和目录可以与命令行上列出的其他目录结合起来。下面的命令行备份 MyFiles 中列出的所有文件和目录、/ 根目录和 /tmp 目录中的所有 iso 文件。

                   $tar -cpf /dev/st0 -T MyFiles /root /tmp/*.iso 

文件列表只是一个文本文件,其中列出文件或目录。下面是一个例子:
/etc
/var
/home
/usr/local
/opt
请注意 tar -T(或 files-from)命令不能接受通配符。文件必须明确地列出。上面的例子展示了一种单独地引用文件的方法。您还可以执行脚本来搜索系统,然后建立一个列表。下面就是这样一个脚本的例子:


#!/bin/sh
cat MyFiles > TempList
find /usr/share -iname *.png >> TempList
find /tmp -iname *.iso >> TempList
tar -cpzMf /dev/st0 -T TempList


上 面的脚本首先将 MyFiles 中的所有现有文件列表复制到 TempList。然后它执行两个 find 命令来搜索文件系统中匹配某个模式的文件,并将它们附加到 TempList。第一次是搜索 /usr/share 目录树中以 .png 结尾的所有文件。第二次是搜索 /tmp 目录树中以 .iso 结尾的所有文件。在建立好列表之后,tar 然后在文件设备 /dev/st0 (第一个 SCSI 磁带设备)上创建 一个新的归档文件,该文件使用 gzip 格式来压缩,并保留所有文件权限。该归档文件将跨越多个卷。要归档的文件的名称将从 TempList 文件中提取。

用于备份的Cpio

GNU cpio工具像tar一样从命令提示行启动程序。与tar相比cpio更复杂,但是也更为可靠。因为如果一个tar文件中某处有一个坏块,就不能对备份文 件的其它部分进行访问,而使用cpio,只有坏块不能被访问。cpio创建一个称为copy-out mode的备份,备份存档中包含了文件和所有者、时间及访问许可等信息。cpio需要一个假定要备份的文件列表。创建列表的一个最方便的方法就是使用ls 命令。例如,要把/home目录备份到SCSI磁带设备中,输入下面的命令:


  $ls /home | cpio -o > /dev/st0


也可以使用find命令。它包括许多选项可以用来消减被存档文件的数量。例如,下面的命令对所有在上一个2 4小时内修改过的文件进行存档:


  $find /home -mtime 1 -type f -print | cpio -o > /dev/st0


copy - in模式把文件从备份存档中解出来。下面的命令会恢复前两个备份例子中的所有文件: 
  $cpio -i < /dev/st0

你也可以对cpio的备份进行计划,用crontab工具设置成基于任何时间的有规律地运行。例如,要在每晚2点把/ home目录备份到SCSI磁带驱动器中,把下面的语句添加到root的crontab文件中即可:
 00 02 * * * ls /home | cpio -o > /dev/st0

 

参考至:http://bbs.deepin.org/thread-1110328-1-1.html

             http://wenku.baidu.com/view/ca4b0cc7aa00b52acfc7ca80.html

原创文章,转载请注明出处、作者

如有错误,欢迎交流指正

邮箱:czmcj@163.com

分享到:
评论

相关推荐

    RHEL5企业级Linux服务全攻略

    教程名称:RHEL5企业级Linux服务全攻略课程目录:【】RHEL5 LAMP整体环境搭建【】RHEL5.1主从NIS服务器配置及测试【】rhel5_RHCE官方培训教材【】RHEL5下搭建DNS服务器【】RHEL5企业级Linux 资料汇总及各种服务器...

    linux系统备份工具

    linux系统备份工具,本人亲自测试使用OK,硬盘对拷完全备份,只是速度稍有点慢,请耐心等待完成。

    linux上安装备份

    在Linux系统中,安装MySQL数据库并进行有效快速的备份是管理员必须掌握的重要技能。这篇教程将针对Linux初学者,详细讲解如何安装MySQL,以及如何备份数据库和Web服务,确保数据安全。 首先,让我们开始MySQL的安装...

    备份linux硬盘到另一台linux硬盘上.linux备份硬盘

    在Linux系统中,备份硬盘是一项重要的任务,可以保护数据免受意外损失。本文将详细讲解如何将一个Linux硬盘上的内容备份到另一个硬盘上,并探讨相关的Linux命令和注意事项。 首先,我们要了解基本的备份原理。在...

    linux 下 postgresql 的安装 备份

    Linux 下 PostgreSQL 的安装和备份 Linux 下 PostgreSQL 的安装和备份是一种复杂的过程,涉及到编译安装、配置和备份等多个方面。本文将详细介绍 PostgreSQL 的安装和备份步骤,以便读者更好地理解和掌握。 1. ...

    Linux下Mysql自动备份脚本

    Linux下自动备份Mysql文件shell脚本。

    linux下远程定时备份oracle数据库

    在Linux环境下,远程定时备份Oracle数据库是一项至关重要的任务,它能确保数据的安全性和业务的连续性。Oracle数据库作为企业级的数据库管理系统,其备份与恢复策略必须严谨且可靠。以下将详细阐述如何在没有安装...

    Linux备份恢复技术及st0 nsto磁带机操作大全

    Linux操作系统因其开源、稳定的特点被广泛应用,因此理解并掌握Linux环境下的备份恢复技术和磁带机操作是每个IT专业人员必备的技能。本资料集"Linux备份恢复技术及st0 nsto磁带机操作大全"涵盖了这一主题的广泛内容...

    在windows下如何备份linux分区.zip

    标题中的“在Windows下如何备份Linux分区”是一个关于在Windows操作系统中对Linux系统分区进行备份操作的主题。这个过程通常涉及到跨平台的磁盘管理工具,因为Windows原生并不支持直接操作Linux分区。以下是对这个...

    Linux下定时备份文件.zip_数据库定时备份

    在Linux系统中,定期备份文件是一项至关重要的任务,可以确保数据的安全性和可恢复性。Linux提供了多种工具和方法来实现这一目标,其中一种常见的方法是使用shell脚本结合cron计划任务。下面我们将深入探讨如何在...

    Linux备份还原工具G4L

    Linux系统备份还原工具,用U盘启动G4L完成实现Linux系统的备份还原

    linux自动备份文件 并上传到远程服务器 脚本实现

    ### Linux自动备份文件并上传至远程服务器脚本实现 在Linux环境下进行自动化操作可以极大地提高工作效率,特别是对于数据备份及远程传输这样的重复性任务。本文将详细介绍如何利用Shell脚本在Linux系统上实现MySQL...

    最全最强悍的linux自动备份+自动删除老的备份脚本

    Linux自动备份脚本是系统管理员在日常工作中必不可少的工具,用于定期备份重要的数据或系统配置,以防止数据丢失。本文将详细介绍如何创建一个强大的Linux自动备份脚本,并自动删除七天前的旧备份。 首先,我们需要...

    linux怎么备份文件

    Linux怎么备份文件?在Linux系统中,用的比较多的方式是使用tar命令来进行文件数据的备份,命令的方式使用起来不是特别方便。小编结合自己的经验,为大家介绍一下如何用多备份工具把文件安全快速的备份起来,以便在...

    postgresql数据库定时备份脚本(linux)

    在Linux环境中,对PostgreSQL数据库进行定时备份是确保数据安全的重要步骤。PostgreSQL是一个功能强大的开源关系型数据库系统,广泛应用于各种规模的企业和项目。定时备份可以帮助我们在系统故障、误操作或其他不可...

    Linux备份到FTP并保留7天内数据.txt

    自己编写的一个脚本,供大家用来学习和备份。采用zip压缩,个人感觉比tar好些,因为tar不识别中文目录、中文文件名导致变成乱码。备份保留本地最新3份备份,并且保留FTP最新7份,顺便鄙视下网上很多备份脚本都是复制...

    Oracle备份脚本(Linux)

    这篇文章将详细介绍 Oracle 备份脚本在 Linux 系统中的实现,包括备份脚本的编写、备份目录的设置、备份日志的记录、磁盘空间的检查、远程服务器的备份等多个方面。 备份脚本的编写 备份脚本的编写是 Oracle 备份...

    为linux系统设置备份

    ### 为Linux系统设置备份:全面解析与策略 在IT领域,数据安全被视为重中之重,而备份则是维护数据安全的关键步骤之一。特别是在Linux环境下,合理的备份策略不仅能保护数据免受意外损失,还能确保业务连续性。以下...

    LINUX 下如何备份分区表

    在Linux系统中,备份分区表是一项至关重要的任务,因为它能保护你的数据免受意外丢失或硬件故障的影响。本文将详细讲解如何在Linux环境下备份主引导记录(MBR)以及分区表,确保你的硬盘分区信息得到妥善保存。 首先...

Global site tag (gtag.js) - Google Analytics