Pages

Saturday, 4 May 2024

Linux 上的备份命令-dd和cpio

dd

dd 在 Linux 环境下,也是非常有用的一个命令,她可以拷贝一个文件时进行指定的转换,尽管我只是用她来制作 u 盘镜像和备份 mbr 信息。

一些常见的参数:

  • if=input: 读取输入文件
  • of=output: 输出到文件
  • bs=n: 设置输入输出的块大小为b bytes,譬如 bs=512、bs=1024M、bs=1G
  • count=n: 拷贝 n 个输入的块

常见的命令

dd if=/dev/sdx of=/path/to/mbr bs=512 count=1       # 备份 mbr
dd if=/path/to/mbr of=/dev/sdx bs=512 count=1       # 恢复 mbr
dd if=/dev/zero of=/path/swap bs=1M count=1024      # 创建个 1024MB 的文件 swap
dd if=/path/to/image of=/dev/sdx bs=1M              # 制作 u 盘启动盘
dd if=/dev/cdrom of=/path/to/iso                    # 制作 cd 的 iso 镜像

详细使用方法可以 man dd

cpio

cpio 可以从 cpio、tar、pax、zip、jar、iso 等等格式的文件中存取档案,她是为备份而生的。

一些常用参数:

  • -i: input 模式,还原备份档
  • -o: output 模式,建立备份档
  • -p: Pass-through 模式,直接将文件复制到目的目录
  • -t: 查看档案文件,仅使用在 i 模式下
  • -a: 重新设置文件的存取时间
  • -c: 使用旧的 POSIX portable 方式存储,o 模式专用
  • -d: 自动建立目录,i & p 模式专用
  • -m: 创建文件时,保留以前文件的修改时间,i & p 模式专用
  • -u: 置换所有文件,不论日期时间的新旧与否,皆不予询问而直接覆盖
  • -v: 将存取过程打印到屏幕上
  • -A: 追加文件到备份档,o 模式专用
  • -B: 存取块大小设置成 5120 byte,o 模式专用
  • -C: 存取块大小,单位是 byte,O 模式专用
  • -L: 若存在软链接档案,则链接档案的属性,而非链接本身,o & p 模式专用

常见的使用场景

find /path/to/dir -print0 | cpio --null -oacvB > /path/to/name.cpio # o 模式,打包目录成 cpio 档案
find /. | cpio -oacvB > /path/to/system.cpio                        # o 模式,备份整个系统
cpio -ivt < /path/to/name.cpio                                      # i 模式,列出 name.cpio 的文件
cpio -idmuv < /path/to/name.cpio                                    # i 模式,还原 cpio 档案
find /path/to/dir -print0 | cpio --null -pvd /path/to/dir1          # p 模式,直接复制文件到新目录

No comments:

Post a Comment