京东6.18大促主会场领京享红包更优惠

 找回密码
 立即注册

QQ登录

只需一步,快速开始

Linux dd下令详解:数据备份,并在备份过程中举行格式转换案例

2024-11-4 15:26| 发布者: db4d5a85| 查看: 198| 评论: 0

摘要: dd 下令主要用来举行数据备份,而且可以在备份的过程中举行格式转换。着实 dd 下令可以把源数据复制成目标数据,而且不管源数据是文件、分区、磁盘照旧光盘,都可以举行数据备份。 dd 下令的基本格式如下: [code]

dd 下令主要用来举行数据备份,而且可以在备份的过程中举行格式转换。着实 dd 下令可以把源数据复制成目标数据,而且不管源数据是文件、分区、磁盘照旧光盘,都可以举行数据备份。

dd 下令的基本格式如下:

[code] [root@localhost ~]# dd if="输入文件" of="输出文件" bs="数据块" count="数目"[/code]

参数:

  1. if:界说输入数据的文件,也可以是输入设备;
  2. of:界说输出数据的文件,也可以是输出设备;
  3. bs:指定数据块的大小,也就是界说一次性读取或写入多少字节。模式数据块大小是 512 字节;
  4. count:指定 bs 的数目;
  5. conv=标志:依据标志转换文件。标志有以下这些:
    • ascii:由 EBCDIC 码转换至 ASCII 码;
    • ebcdic:由 ASCII 码转换至 EBCDIC 码;
    • ibm:由 ASCII 码转换至更换的 EBCDIC 码;
    • block:将结束字符块里的换行更换成等长的空格;
    • unblock:将 cbs 大小的块中尾部的空格更换为一个换行符;
    • lcase:将大写字符转换为小写;
    • notrunc:不截断输出文件;
    • ucase:将小写字符转换为大写;
    • swab:交换每一对输入数据字节;
    • noerror:读取数据发生错误后仍旧继续;
    • sync:将每个输入数据块以 NUL 字符填满至 ibs 的大小;当配合 block 或 unblock 时,会以空格代替 NUL 字符填充;

【例 1】备份文件

[code] [root@localhost ~]# dd if=/etc/httpd/conf/httpd.conf of=/tmp/httpd.bak 记载了67+1 的读入 #数据占了写满的67个数据块,以及1个没有写满的数据块 记载了67+1 的写出 #默认数据块大小是512字节 34439字节(34 kB)已复制,0.0524897 秒,656 kB/秒 #如果要备份文件,那么dd下令和cp下令非常类似 [root@localhost ~]# ll -h /tmp/httpd.bak -rw-r--r--.1 root root 34K 6月 5 18:04 /tmp/httpd.bak #检察一下生成的备份文件的大小[/code]

【例 2】备份分区为一个备份文件

[code] [root@localhost ~]# df -h 文件体系 容量 已用 可用 已用%% 挂载点 /dev/sda3 20G 2.0G 17G 11% / tmpfs 306M 0 306M 0% /dev/shm /dev/sda1 194M 27M 157M 15% /boot /dev/sr0 3.5G 3.5G 0 100% /mnt/cdrom #检察一下分区容量,我们备份/boot分区 [root@localhost ~]# dd if=/dev/sda1 of=/tmp/boot.bak #备份完成 [root@localhost ~]# ll -h /tmp/boot.bak -rw-r--r--.1 root root 200M 6月 5 18:14 /tmp/boot.bak #检察生成的备份文件 #如果必要恢复,则执行以下下令 [root@localhost ~]# dd if=/tmp/boot.bak of=/dev/sda1[/code]

如果想要把分区直接备份成另一个分区,就必要生成一个新的分区,这个分区的大小不能比源分区小,只能和源分区大小一致或比它大。下令如下:

[code] [root@localhost ~]# dd if=/dev/sda1 of=/dev/sdb1 #如果必要恢复,则只需把输入项和输出项反过来即可,下令如下 [root@localhost ~]# dd if=/dev/sdb1 of=/dev/sda1[/code]

【例 3】整盘备份

[code] [root@localhost ~]# dd if=/dev/sda of=/dev/sdb #把磁盘a备份到磁盘b [root@localhost ~]# dd if=/dev/sda of=/tmp/disk.bak #把磁盘a备份成文件disk.bak #备份恢复 #如果要备份到另一块硬盘上,那么,当源硬盘数据粉碎时,只需用备份硬盘更换源硬盘即可 #如果要备份成文件,那么在恢复时必要把备份数据复制到其他Linux中,然后把新硬盘安装到这台Linux #服务器上,再把磁盘备份数据复制到新硬盘中。下令如下 [root@localhost ~]# dd if=/tmp/disk.bak of=/dev/sdb[/code]

【例 4】复制软盘

[code] [root@localhost ~]# dd if=/dev/fd0 of=/tmp/fd.bak #在Linux中软盘的设备文件名是/dev/fd0 #这条下令先把软盘中的数据保存为临时数据文件 [root@localhost ~]# dd if=/tmp/fd.bak of=/dev/fd0 #然后更换新的软盘,把数据备份复制到新软盘中,就实现了软盘的复制[/code]

如果必要备份的是光盘,那么在 Linux 中就是使用 dd 下令制作光盘的 ISO 镜像的。下令如下:

[code] #制作光盘ISO镜像 [root@localhost ~]# dd if=/dev/cdrom of-/tmp/cd.iso #把光盘中所有的数据制作成ISO镜像 [root@localhost ~J # mkdir /mnt/cd #创建一个新的挂载点 [root@localhost ~]# mount -o loop /tmp/cd.iso /mnt/cd #挂栽ISO文件到挂载点 [root@localhost ~]# cd /mnt/cd #进入挂栽点 [root@localhost cd]# ls CentOS_BuildTag images RELEASE-NOTES-en-tJS.html RPM-GPG-KEY-CentOS-Debug-6 TRANS.TBL EULA isolinux repodata RPM-GPG-KEY-CentOS-Security-6 GPL Packages RPM-GPG-KEY-CentOS-6 RPM-GPG-KEY-CentOS-Testing-6 #数据是光盘当中的数据,这个ISO镜像是可以被当作真正的光盘使用的[/code]

我们有时必要制作指定大小的文件,比如,在增长 swap 分区时,就必要创建指定大小的文件,这时也使用 dd 下令。下令如下:

[code] [root@localhost ~]# dd if=/dev/zero of=/tmp/testfile bs=1M count=10 #数据输入项是/dev/zero会向目标文件中不停地写入二进制的0 #指定数据块大小是1MB #指定生成10个数据块。也就是界说输出的文件大小为10MB 记载了10+0 的读入 #显示数据占满了10个数据块 记载了10+0 的写出 #不外这里数据块的大小已经是1MB了 10485760字节(10 MB)已复制,0.00709902 秒,1.5 GB/秒 [root@localhost ~]# ll -h /tmp/testfile -rw-r--r--.1 root root 10M 6月 5 18:46 /tmp/testfile #生成的testfile文件的大小刚好是10MB[/code]

dd 下令在举行整盘复制时,类似于 GHOST 工具的功能,不外通过 dd 下令复制出来的硬盘数据要比 GHOST 复制出来的硬盘数据稳固得多。固然 dd 下令功能强大,不外也有一个显着的缺点,就是复制的时间较长,复制 100GB 的数据必要 15~25 分钟(根据服务器的性能差别而差别)。

实现数据备份还有非常多的方法和工具,比如 tar 和 cpio 下令。至于网络复制工具,如 rsync 和 scp 等,必要较美满的网络知识才能够学习,这里不再介绍。

到此这篇关于Linux dd下令详解:数据备份,并在备份过程中举行格式转换案例的文章就介绍到这了,更多相关Linux dd下令内容请搜刮脚本之家以前的文章或继续欣赏下面的相关文章,希望大家以后多多支持脚本之家!


来源:https://www.jb51.net/LINUXjishu/788647.html
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
关闭

站长推荐上一条 /6 下一条

QQ|手机版|小黑屋|梦想之都-俊月星空 ( 粤ICP备18056059号 )|网站地图

GMT+8, 2025-7-1 18:02 , Processed in 0.030847 second(s), 18 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2025 Discuz! Team.

返回顶部