zoukankan      html  css  js  c++  java
  • LINUX系统备份工具


    【导读】:LINUX系统备份工具(一),工具,备份,系统,文件,时间,层级,dump,指定,磁带,改
    Linux备份和恢复

    Linux备份大致有以下几个工具:Dump Tar Cpio Cp Scp Rsync



    0、Linux备份与恢复的时间变化

    Unix系统为每个文件都记录这三个不同的时间,第一个是mtime,即修改时间。无论何时,

    只要文件内容被改变,mtime的值就会被相应修改。第二个是atime,即访问时间。只要文

    件被访问(比如运行或读取),它就会被修改。第三个是ctime,即变更时间。当文件的属性

    发生变化(比如改变权限或者所有关系)时,ctime的值就会被改变。管理员用ctime来查

    找黑客。备份会改变atime,tar,cpio,dd都会这样做,dump通过原始设备来读取文件系统,因此它不会改变atime.



    1、Dump

    语法:

    [root@localhost ~]# dump

    dump 0.4b41 (using libext2fs 1.39 of 29-May-2006)

    usage:dump [-level#] [-acmMnqSuv] [-A file] [-B records] [-b blocksize]

    [-d density] [-D file] [-e inode#,inode#,...] [-E file]

    [-f file] [-h level] [-I nr errors] [-j zlevel] [-Q file]

    [-s feet] [-T date] [-y] [-z zlevel] filesystem

    dump [-W | -w]



    Dump为备份工具程序,可将目录或整个文件系统备份至指定的设备,或备份成一个大文件

    参数:

     -0123456789  备份的层级

     -b<区块大小>指定区块的大小,单位为KB

     -B<区块数目>指定备份卷册的区块数目

     -c修改备份磁带预设的密度与容量

     -d<密度>设置磁带的密度。单位为BPI

     -f<设备名称>指定备份设备

     -h<层级>当备份层级等于或大于指定的层级时,将不备份用户标示为"nodump"的文件

     -n当备份工作需要管理员介入时,向所有"operator"群组中的使用者发出通知

     -s<磁带长度>备份磁带的长度,单位为英尺

     -T<日期>指定开始备份的时间与日期

     -u备份完毕后,在/etc/dumpdates中记录备份的文件系统,层级,日期与时间等

     -w与-W类似,但仅显示需要备份的文件

     -W显示需要备份的文件及其最后一次备份的层级,时间与日期



    Dump可以执行类似tar的功能,然而Dump倾向于考虑文件系统而不是个别的文件。下面是引自dump手册文件中的内容:“dump检查ext3文件系统上的文件,并确定哪些文件需要备份。这些文件将出于安全保护而被复制到给定的磁盘、磁带或其他存储媒体上……大于输出媒体容量的转储将被划分到多个卷(自动跟踪多个卷)。在大多数媒体上,容量是通过一直写入直至返回一个end-of-media 标记来确定的。”

    Dump命令操作举例

    1、执行一个完全Linux备份,它把所有ext2ext3文件系统备份到一个SCSI磁带设备

    范例:

    dump0f/dev/nst0 /boot

    dump0f/dev/nst0 /

    说明:在这个例子中,系统中有两个文件系统。一个用于/boot,另一个用于/,这是常见的配置。它们必须在执行备份时单独地引用。/dev/nst0引用第一个SCSI磁带驱动器,不过是以非重绕的模式引用。这样确保各个卷在磁带上一个接一个地排列dump的一个有趣特性是其内置的增量备份功能。在上面的例子中,0表示0级或基本级备份,这是完全系统备份,您要定期执行以保存整个系统。对于后续的备份,您可以使用其他数字(1-9)来代替0,以改变备份级别,1级备份会保存自从执行0级备份以来更改过的所有文件(增量备份),2级备份会保存自从执行1级备份以来更改过的所有文件,以此类推……使用tar和脚本可以执行相同的功能,但要求脚本创建人员提供一种机制来确定上次备份是何时执行的dump具有它自己的机制,即它在执行备份时会输出一个更新文件(/etc/dumpupdates。这个更新文件将在每次执行0级备份时被重设。后续级别的备份会保留它们的标记,直至执行另一次0级备份。如果您在执行基于磁带的备份,dump自动跟踪多个卷

     

    2、把/home完全备份到一个称做/dev/rmt/0cbn的本地磁带驱动器上。

    # dump 0unbdsf 126 141000 11500 /dev/rmt/0cbn /home

     

    3、把/home完全备份到一个称做/backup/home.dump的光学CD驱动器上

    # dump 0unbdsf 126 141000 11500 /backup/home.dump /home

    以上命令由三个不需要参数的选项0u and n)以及四个需要一起协作参数的选项(b,d,s and

    f)组成

     

    2、配合dump的程序是restore

    [root@localhost ~]# restore –help

    restore 0.4b41 (using libext2fs 1.39 of 29-May-2006)

    usage: restore -C [-cdeHlMvVy] [-b blocksize] [-D filesystem] [-E mls]

                      [-f file] [-F script] [-L limit] [-s fileno]

           restore -i [-acdehHlmMouvVy] [-A file] [-b blocksize] [-E mls]

                      [-f file] [-F script] [-Q file] [-s fileno]

           restore -P file [-acdhHlmMuvVy] [-A file] [-b blocksize]

                      [-f file] [-F script] [-s fileno] [-X filelist] [file ...]

           restore -r [-cdeHlMuvVy] [-b blocksize] [-E mls]

                      [-f file] [-F script] [-s fileno] [-T directory]

           restore -R [-cdeHlMuvVy] [-b blocksize] [-E mls]

                      [-f file] [-F script] [-s fileno] [-T directory]

           restore -t [-cdhHlMuvVy] [-A file] [-b blocksize]

                      [-f file] [-F script] [-Q file] [-s fileno] [-X filelist] [file ...]

           restore -x [-acdehHlmMouvVy] [-A file] [-b blocksize] [-E mls]

                      [-f file] [-F script] [-Q file] [-s fileno] [-X filelist] [file ...]

    命令选项:

    决定restore的类型

    t显示卷的内容

    r指明卷的整个内容应该被恢复到当前工作目录下

    x只提取命令后面所列的文件

    i允许执行交互式恢复

    决定restore的行为

    v指定详细输出

    s读取之前跳过的磁带文件个数

    b块因子

    f备份驱动器的文件名

    y恢复过程禁止询问

     

    它用于从转储映像还原文件,restore命令执行转储的逆向功能,可以首先还原文件系统的完全备份,而后续的增量备份可以在已还原的完全备份之上覆盖,也可以从完全或部分备份中还原单独的文件或者目录树。

     

    使用restore来执行还原

    要还原使用dump保存的信息,可以使用restore命令。像tar一样,dump能够列出-t归档文件的内容,并与当前文件作比较-C。使用dump时必须小心的地方是还原数据。有两种非常不同的还原方法,您必须使用正确的方法才能获得可预测的结果。

     

    重建(-r)

    记住,在设计dump考虑的是文件系统,而不是单独的文件。因此,存在两种不同的文件还原风格。要重建一个文件系统,可使用-r命令行开关。设计重建的目的是为了能在空文件系统上操作,并将它还原为已保存的状态。在执行重建之前,您应该已经创建、格式化和装载(mount了该文件系统。不应该对包含文件的文件系统执行重建

     

    下面是使用上面执行的转储来执行完全重建的例子。

    restore -rf /dev/nst0

     

    上面这个命令需要针对要还原的每个文件系统分别执行。在需要的时候,可以重复这个过程来添加增量备份

     

    提取,还原单个文件(-x)

    如果需要使用单独的文件而不是使用整个文件系统,您必须使用-x开关来提取它们,例如,要仅从我们的磁带备份中提取/etc目录,可使用以下命令:

    restore -xf /dev/nst0 /etc

     

    交互式还原(-i)

    restore提供的另外一个特性是交互式模式。使用命令:

    restore -if /dev/nst0

    将把您置于交互式shell中,同时还显示了包含在该归档文件中的项。键入“help”将会显示一个命令列表。然后您就可以浏览并选择希望提取的项。务必记住,您提取的任何文件都将进入当前目录

     

    要恢复一个使用块因子32创建的DUMP磁带备份(位于/dev/rmt/0cbn)的全部内容。

    restore rvbfy 32 /dev/rmt/0cbn

    有一个使用块因子32创建的位于/dev/rmt/0cbn中的DUMP磁带,如果想从该磁带中恢复文

    /etc/hosts and /etc/passwd.

    restore xvbfy 32 /dev/rmt/0cbn ./etc/hosts ./etc/passwd

    创建内容表

    restore tfy device >/tmp/dump.list

     

    3、跳过文件dump(chattr)

    标记将被dump跳过的文件和目录是可以做到的。实现此目的的命令是chattr,它改变ext2ext3文件系统上的扩展属性。

    chattr +d <filename>(文件一旦被修改d属性就会自动清除)

    上面的命令向文件添加一个标记,让dump在执行备份时跳过该文件

     

    Dumprestore都能在网络上运行,因此您可以通过远程设备进行备份或还原dumprestore使用磁带驱动器和提供广泛选项的文件设备。然而,两者都仅限用于ext2ext3文件系统。如果使用的是JFSReiserFS或者其他文件系统,您将需要其他的实用工具,比如tarcpio

     

    举例说明:

    dump命令是一个专门用来备份的工具

    [root@laptop pyegrp]# dump -0 -u -f /dev/hda3 /boot

    -0是备份的等级,从090以后都是更新备份的参数,一般常用的是09

    -u是将备份记录写入/etc/dumpdates这个文件中

     

    [root@laptop pyegrp]# cat /etc/dumpdates

    /dev/hda9 0 Sat Nov 30 19:45:56 2002

    /dev/hda9 9 Sat Nov 30 17:04:20 2002

    注意:当你备份的目录是一个子目录,而不是一个分区的顶层目录时-u参数是不能使用的。-f是指定备份到的文件,也可以指定一个设备文件,我在这里指定的就是一个分区

     

    更新备份:

    0级别备份的基础上,向/boot写入一些新的文件,然后

    umount /boot

    mount /boot

    注意:如果不这样做,不会将新写入的文件备份进去的

    然后:

    [root@laptop pyegrp]# dump -9 -u -f /dev/hda3 /boot

     

    restore命令是用来恢复备份的

    [root@laptop pyegrp]# restore rf /dev/hda3 /boot

     

    restore命令来查看备份文件里的文件列表

    [root@laptop pyegrp]# restore tf /dev/hda3

     

    其他待续。。。



  • 相关阅读:
    WHERE col1=val1 AND col2=val2;index exists on col1 and col2, the appropriate rows can be fetched directly
    MySQL 交集 实现方法
    MBProgressHUD的使用
    Xcode4 使用 Organizer 分析 Crash logs(转)
    SimpleXML 使用详细例子
    PHP的XML Parser(转)
    iPhone,iPhone4,iPad程序启动画面的总结 (转)
    Pop3得到的Email 信件格式介绍
    yii总结
    隐藏Tabbar的一些方法
  • 原文地址:https://www.cnblogs.com/beyondhjjyt/p/3046519.html
Copyright © 2011-2022 走看看