zoukankan      html  css  js  c++  java
  • 压缩工具和整盘备份工具dd

    一、使用gzip压缩文件

    gzip是GNU zip的缩写。

    【命令格式】

    gzip [option] filename

    【常用选项】

    c:压缩后将结果输出到标准输出,并保留原始文件。

    d:解压缩文件。

    l:显示压缩文件的详细信息。

    r:递归地处理目录下的所有文件及子目录,或递归地解压缩文件内的目录和子目录。

    v:显示命令的执行过程。

    t:测试压缩文件。

    num:num为数字1-9,代表压缩时使用的压缩率。1表示压缩速度最快、压缩率最小,9代表压缩速度最慢、压缩率最大。如果不使用此选项,则默认使用压缩率6.

    二、使用bzip2压缩文件

    与gzip等大多数压缩工具相比,bzip2的压缩率更高,但速度相对较慢。

    【命令格式】

    bzip2 [option] filename

    【常用选项】

    k:压缩、解压缩完成之后,保留原始文件。

    d:执行解压缩任务。

    t:测试压缩文件的完整性。

    num:num为数字1-9,表示压缩率级别。其中1表示压缩率最低、速度最快,9表示压缩率最高、速度最慢。

    v:执行时显示执行的详细信息。

    三、整盘备份命令dd

    dd是一个非常特殊的命令,其作用是从标准输入或文件中读取数据,并按指定的格式转换数据,然后输出。dd命令非常像Windows系统中的分区、磁盘备份工具Ghost。使用这个命令可以备份整个分区、磁盘,并且备份时可以不必关闭系统、卸载文件系统。

    【命令格式】

    dd <option>

    dd命令不需要参数,所有参数都通过选项指定。

    【常用选项】

    if:指定要读取的文件,默认为标准输入。

    of:指定要输出的文件,默认为标准输出。

    ibs:指定读取数据时的块大小,默认为512字节。

    obs:指定输出数据时的块大小,默认为512字节。

    bs:将读取、输出时的块大小一起指定。

    count:指定读取的区块数。

    【用法示例】

    管理员在许多时候都要使用到这个命令,其目的可能是需要备份一个分区、硬盘和软盘等存储设备中的内容,也可能是需要验证某个设置,需要产生一个指定大小的文件等。

    (1)有时候管理员需要一个类似于Ghost的工具,备份一个分区甚至是一个磁盘,这时可以使用dd命令来完成。

    例如要备份磁盘sda:

    [root@localhost test]# dd if=/dev/sda of=/mnt/backup/backup_sda.dd

    上面的示例中,dd命令从设备/dev/sda中读取数据,并存放到文件/backup_sda.dd中。

    这样磁盘sda中的所有数据都被保存到backup_sda.dd文件内,这些数据包括了磁盘分区表及所有分区和数据等内容。由于磁盘存储的数据可能会有很多,因此命令可能会需要很长时间。

    提示:将磁盘备份到文件中时,建议文件名以.dd结尾,以便于文件使用者识别。

    (2)恢复磁盘时,只需要将读取和写入的文件进行调换即可。例如要将从/dev/sda中备份的数据恢复到一个新的设备/dev/sdb中:

    [root@localhost ~]# dd if=/mnt/backup/backup_sda.dd of=/dev/sdb

    dd命令从文件/mnt/backup/backup_sda.dd中读取数据,并将这些数据写入磁盘sdb中。命令执行完成之后设备sda和sdb中的数据将完全相同。

    (3)许多时候可能希望能够在备份磁盘分区的同时,压缩备份数据以节省空间,这是可以与gzip等压缩命令一起使用。

    例如备份磁盘sda并使用gzip压缩备份数据:

    [root@localhost ~]# dd if=/dev/sda | gzip >/mnt/backup/backup_sda.dd.gz

    上面示例命令中,命令dd首先从磁盘sda中读取数据,并将这些数据通过管道交给第2个命令gzip。gzip将这些数据压缩之后,通过重定向的方式写入文件backup_sda.dd.gz中。

    (4)如果要将使用gzip压缩后的数据恢复到磁盘sdb中,可以反向使用以上命令:

    [root@localhost ~]# gzip -dc /mnt/backup/backup_sda.dd.gz | dd of=/dev/sdb

    (5)如果两块磁盘都连接到系统,可以直接将一个磁盘中的内容整盘拷贝到另一个磁盘中,将选项if和of的参数换成需要使用的参数即可。

    例如要将磁盘sda中的所有数据拷贝到磁盘sdb中:

    [root@localhost ~]# dd if=/dev/sda of=/dev/sdb

    (6)利用dd命令能直接读写块设备,还可以制作光盘镜像。例如为当前光驱中的光盘制作光盘镜像,并将 光盘镜像命名为linux.iso:

    [root@localhost ~]# dd if=/dev/cdrom of=/mnt/backup/linux.iso

    (7)许多时候管理员需要产生一个指定大小的文件,其目的可能是验证一些配置(例如磁盘配额),也可能是测试磁盘、阵列的读写速度等。这是可以使用dd命令的bs和count选项,指定块大小和块数量。

    例如产生一个5GB的文件放置在当前目录下,并将其命名为test.5G:

    [root@localhost ~]# dd if=/dev/zero of=test.5G bs=1M count=5120

    注意:在上面的命令中用到了一个设备文件/dev/zero,这是一个非常特殊的设备文件,zero设备的功能是无限制地提供数据0.

    (8)许多时候,磁盘上存放了相当机密的数据,当磁盘报废或者做其他用途时,删除数据和格式化磁盘都无法保证这些数据不被泄露。此时可以使用随机数据填充磁盘的方式销毁磁盘上的数据。

    例如要销毁磁盘sdc上的数据:

    [root@localhost ~]# dd if=/dev/urandom of=/dev/sdc

    (9)在Linux系统中,要备份磁盘的分区表,可以不用其他工具,使用dd命令就可以轻松完成这个工作:

    [root@localhost ~]# dd if=/dev/sda of=image count=1 bs=512

    上面这个命令,会备份磁盘/dev/sda的前512个字节(分区表保存在磁盘的前512字节中),保存到当前目录下并命名为image。

    (10)要从已经备份的文件image中恢复分区表:

    [root@localhost ~]# dd if=image of=/dev/sda

     

    注意:虽然dd命令备份数据时允许硬盘正在使用,但通常应该停止使用磁盘或以只读方式挂载磁盘,以免出现文件不一致的情况。

  • 相关阅读:
    时间管理的心理建设与优先矩阵
    在oracle中计算时间差
    android环境搭建
    有效沟通的六个步骤
    5招教你把握Java性能监控(转自51testing)
    选项卡TabHost
    Excel导入导出数据库02
    画廊视图Gallery
    拖动条SeekBar及星级评分条
    在应用程序级别之外使用注册为allowDefinition='MachineToApplication' 的节是错误的
  • 原文地址:https://www.cnblogs.com/nufangrensheng/p/3474037.html
Copyright © 2011-2022 走看看