zoukankan      html  css  js  c++  java
  • cpio备份命令

    cpio是一个比较古老的备份命令,也是用于磁带机备份的工具。虽然如此,现在许多时候仍然需要使用这个命令。例如定制系统内存映像盘时等。

    小知识:系统内存映像盘通常位于引导分区/root中,文件名以initrd开头。该文件主要用于系统启动时加载需要的模块,例如文件系统模块、RAID模块等。

    小知识:内存映像,其实就是在内存中创建一个和外存文件完全相同的映像。用户可以将整个文件映射到内存,也可以部分映射到内存。系统会将对内存映像的改动如实的反映到外存文件中。从而实现了通过内存映像对外村文件的操作。

    一、cpio命令的基本格式

    cpio命令与tar命令一样,其功能也是将文件或文件列表归档到文件中。

    【命令格式】

    cpio [option] [destination-directory]

    【常用选项】

    i:使用coppy-in模式,还原归档文件或列出归档文件中的文件列表。

    o:使用copy-out模式,建立归档文件。

    p:使用copy-pass模式,将文件直接复制到目的目录。

    c:使用老式的ASCII归档模式。如果需要跨平台使用,应该使用老式的ASCII归档格式。

    d:创建需要的目录。如果文件不处于同一目录中,应该使用此选项。

    v:显示处理过程的详细信息。

    t:显示归档文件中的文件列表。

    m:保持文件的时间戳记。

    H:使用指定的格式归档文件。

    【参数说明】

    copy-in:使用此模式时,任何不是选项的参数都会被当作通配符,只有被匹配的文件才能复制出来。如果没有任何通配符,cpio将恢复所有文件。

    copy-out:此模式会从标准输入中读取文件列表,并将文件添加到归档文件中,最后将归档文件输出到标准输出。由于文件列表使用换行符作为分隔符,因此文件列表最好使用find命令生成。

    copy-pass:此模式会将文件列表中的文件复制到另一个目录,中间不使用归档包。相当于copy-in和copy-out模式的结合。

    二、使用cpio归档文件

    使用cpio命令归档文件时,需要使用copy-out模式(即选项o),读取文件列表并归档文件。除此之外,需要使用find命令为其生成需要归档的文件列表。

    (1)由于cpio不会操作文件,因此输入、输出都必须借助重定向或管道来完成。

    例如将当前目录中的所有文件归档:

    #使用find命令输出当前目录中的所有文件
    #使用选项o备份管道传过来的所有文件,并保存到上级目录中
    [root@localhost test]# find -print | cpio -o >../backup.cpio
    91 blocks

    上面示例的命令中,如果不使用重定向输出,cpio命令会将结果直接输出到标准输出。

    (2)使用选项v可以显示归档详细信息:

    [root@localhost zhu]# find -print | cpio -ov >../backup.cpio
    .
    ./test.sh
    ./.bashrc
    ./.bash_history
    ./backup.cpio
    ./.bash_logout
    ...

    (3)如果重定向的目标是一个设备,cpio会将归档文件存到设备上。例如将归档文件存放到磁带机设备:

    [root@localhost home]# find -print | cpio -ov >/dev/st0

    (4)与tar归档命令不同,cpio并没有提供压缩功能。如果要压缩生成的归档文件,可以通过管道和相应的压缩命令。

    [root@localhost test]# find -print | cpio -ov | gzip >../backup.cpio.gz
    [root@localhost test]# find -print | cpio -ov | bzip2 >../backup.cpio.bz2

    三、查看归档文件中的文件列表

    (1)查看归档文件中的文件列表:

    [root@localhost zhu]# cpio -t <backup.cpio
    .
    join3
    uniq_test
    smbag
    paste2
    smbaa
    ...

    (2)查看归档文件中的文件列表时,可以使用选项v查看详细的文件信息:

    [root@localhost zhu]# cpio -tv <backup.cpio
    drwxr-xr-x   3 root     root            0 Dec 10 14:53 .
    -rw-r--r--   1 root     root           44 Dec  9 08:41 join3
    -rw-r--r--   1 root     root           98 Dec  9 09:09 uniq_test
    -rw-r--r--   1 root     root         1024 Dec  9 09:36 smbag
    ...

    (3)查看归档文件中的文件列表时,如果命令中使用了除选项以外的字符,cpio会将其当作文件通配符。例如使用“*.c”查看归档文件中所有以.c结尾的文件:

    [root@localhost zhu]# cpio -tv "*.c" <backup.cpio
    -rw-r--r--   1 root     root          159 Dec  8 14:22 condition.c
    91 blocks

    四、恢复cpio归档文件

    恢复cpio归档文件时,需要使用cpio的选项copy-in模式(即选项i)。与查看归档文件中的文件列表相同,此模式也会将所有选项以外的字符当成通配符。

    (1)如果归档文件使用了不同的格式,cpio会自动判断并恢复文件,无须再指定归档文件的格式。

    例如使用选项i将文件从归档文件中恢复出来,并显示恢复文件的详细信息:

    [root@localhost zhu]# cpio -iv <./backup.cpio
  • 相关阅读:
    最小覆盖点集模板
    NSCache使用常见错误
    stl变易算法(一)
    web.xml(8)_jsp-config
    大话设计模式—中介者模式
    HTML5开发移动web应用——SAP UI5篇(9)
    BZOJ 1588 HNOI2002 营业额统计 裸Treap
    php实现Bloom Filter
    华为上机之四
    【转】我的电脑最近忽然开不了机,启动修复也无法修复,win7系统。开机的时候如果不点启动修复直接正常启动
  • 原文地址:https://www.cnblogs.com/nufangrensheng/p/3473772.html
Copyright © 2011-2022 走看看