Linux中磁盘备份,dd命令与cpio命令

dd命令

格式 : dd if=(_____) of=(____)

  • if:标准输入:输入的文件名,指定源文件
  • of:标准输出,输出的文件名,指定目的文件
  • count: 拷贝多个块
  • bs :同时指定输入输出块大小
    • ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。
    • obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节
  • conv=<关键字>:转换。

备份磁盘:

  • dd if=/dev/sda1 of=/dev/sda2
[root@xiaoagiao /]# dd if=/dev/sda1 of=/dev/sda2
409600+0 records in
409600+0 records out
209715200 bytes (210 MB) copied, 34.0303 s, 6.2 MB/s

恢复到指定磁盘:

  • dd if=/dev/sda2 of=/dev/sda1 (反过来)

备份并压缩:

  • dd if=/dev/sda1 |gzip >/tmp/file.gz–>(将/dev/sda1备份到/tmp下命名为file.gz。

备份MBR:

  • dd if=/dev/sda of=/tmp/file count=1 bs=512

拷贝内存文件

  • dd if=/dev/mem of=/tmp/file bs=1m count=1024
[root@fei tmp]# dd if=/dev/zero of=/tmp/file bs=1M  count=1024

记录了1024+0 的读入
记录了1024+0 的写出
1073741824字节(1.1 GB)已复制,13.2905 秒,80.8 MB/秒
[root@fei tmp]# du -sh /tmp/file
1.1G    /tmp/file

测试硬盘的读写速率

  • dd if=/dev/zero of=/tmp/file bs=1000K count=1024
1073741824字节(1.1 GB)已复制,13.2905 秒,80.8 MB/秒
//通过最后一行的数据可查看盘的读写速率。

测试硬盘的最佳块大小,1K 4K 8 K 16K

  • dd if=/dev/zero of=/tmp/file bs=1024 count=1000000
  • dd if=/dev/zero of=/tmp/file bs=4096 count=250000
  • dd if=/dev/zero of=/tmp/file bs=8192 count=125000
  • dd if=/dev/zero of=/tmp/file bs=16384 count=62500
[root@fei tmp]# dd if=/dev/zero of=/tmp/file bs=1024 count=1000000
记录了1000000+0 的读入
记录了1000000+0 的写出
1024000000字节(1.0 GB)已复制,2.0054 秒,511 MB/秒

[root@fei tmp]# dd if=/dev/zero of=/tmp/file bs=4096 count=250000
记录了250000+0 的读入
记录了250000+0 的写出
1024000000字节(1.0 GB)已复制,1.09559 秒,935 MB/秒

[root@fei tmp]# dd if=/dev/zero of=/tmp/file bs=8192 count=125000
记录了125000+0 的读入
记录了125000+0 的写出
1024000000字节(1.0 GB)已复制,0.919246 秒,1.1 GB/秒
[root@fei tmp]# dd if=/dev/zero of=/tmp/file bs=16384 count=62500
记录了62500+0 的读入
记录了62500+0 的写出
1024000000字节(1.0 GB)已复制,1.07065 秒,956 MB/秒

由此可见, bs=8192 count=125000时,硬盘的读写速率最快,就找到了最佳块了。

转换

  • dd if=/tmp/file of=/tmp/file1 conv=ucase
    将file文件中的所有英文字母转换为大写

cpio 备份命令

  • 备份: cpio -ocvB > file
  • 还原: cpio -ivcdu > file
  • 查看: cpio -ivct > file
-o 拷贝文件到某个文件或者设备
-c 存储方式
-v 显示存储过程
-B 以XXX块大小拷贝, 默认是512 ,以5120大小拷贝
-i 从某个文件或者设备拷贝出
d 自动创建目录
u 自动新文件覆盖旧文件 update
t 查看文件或者设备中的内容
  • #find / -print | cpio -ocvB > /dev/sdb
    将根目录下的文件,备份压缩到/dev/sdb。
  • #cpio -ivcdu < /dev/sdb > /tmp/log
    将/dev/sdb还原释放到/tmp/log。
发布了20 篇原创文章 · 获赞 15 · 访问量 1937

猜你喜欢

转载自blog.csdn.net/wdwangye/article/details/104897963