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

     

    其他待续。。。



  • 相关阅读:
    巧用table的rules属性设置表格的边框掩饰。。。
    JS日期和时间
    onchange事件验证文本框格式,不正确光标返回原文本框,这个js怎么写?
    简易万用表
    在单片机中的空函数
    地感线圈的讲究
    全桥片
    这个当单片机程序怎么会不停的通过串口发数据,设置波特率为9600,但是串口软件接受数据不对(初学者,请高手指教)
    今天开博
    关于二极管
  • 原文地址:https://www.cnblogs.com/beyondhjjyt/p/3046519.html
Copyright © 2011-2022 走看看