系统管理指南:设备和文件系统

第 25 章 备份文件和文件系统(任务)

本章介绍使用 ufsdump 命令备份文件系统的过程。

有关这些过程的信息,请参见备份文件和文件系统(任务列表)

有关执行备份的概述信息,请参见第 24 章,备份和恢复文件系统(概述)

有关将各个文件备份到软盘的信息,请参见第 29 章,复制 UFS 文件和文件系统(任务)

有关 ufsdump 命令的其他信息,请参见第 28 章,UFS 备份和恢复命令(参考)

备份文件和文件系统(任务列表)

任务 

说明 

参考 

1. 准备文件系统备份。 

确定文件系统、备份类型以及用于备份的磁带设备。 

准备文件系统备份

2. 确定备份文件系统所需的磁带数目。 

确定文件系统的完整备份所需的磁带数目。 

如何确定进行完整备份所需的磁带数目

3. 备份文件系统。 

执行文件系统的完整备份,以获取所有文件的基线副本。 

根据保留每天更改的文件副本对于站点是否重要,执行文件系统的增量备份。 

如何将文件系统备份到磁带

准备文件系统备份

备份文件系统的准备工作从规划开始,规划在第 24 章,备份和恢复文件系统(概述)中介绍并且包括选择以下内容:

有关更多信息,请参见第 24 章,备份和恢复文件系统(概述)

本节介绍备份文件系统之前可能需要执行的其他两项任务:

Procedure如何查找文件系统名称

  1. 显示 /etc/vfstab 文件的内容。


    $ more /etc/vfstab
    
  2. 查看与文件系统名称对应的 mount point 列。

  3. 备份文件系统时,请使用 mount point 列中列出的目录名称。


示例 25–1 查找文件系统名称

在本示例中,要备份的文件系统为根 (/)、/usr/datab/export/home


$ more /etc/vfstab

#device           device               mount        FS    fsck mount   mount

#to mount         to fsck              point        type  pass at boot options

/devices           -                   /devices     devfs   -     no      -

.

.

.

/proc              -                    /proc       proc    -     no      -

/dev/dsk/c0t0d0s1  -                    -           swap    -     no      -

/dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0   /            ufs     1     no      -

/dev/dsk/c0t0d0s6 /dev/rdsk/c0t0d0s6   /usr         ufs     1     no      -

/dev/dsk/c0t0d0s5 /dev/rdsk/c0t0d0s5   /datab       ufs     2     yes     -

/dev/dsk/c0t0d0s7 /dev/rdsk/c0t0d0s7   /export/home ufs     2     yes     -

swap              -                    /tmp         tmpfs   -     yes     -

Procedure如何确定进行完整备份所需的磁带数目

  1. 成为超级用户或承担等效角色。

  2. 估计备份大小(以字节为单位)。


    # ufsdump [0]S file-system
    

    如果是文件系统的第一份备份,请使用 S 选项显示进行该备份估计所需的字节数。

    如果不是文件系统的第一份备份,请使用 0S 选项显示进行该备份估计所需的字节数。

  3. 按照磁带容量划分估计大小,以确定所需的磁带数目。

    有关磁带容量的列表,请参见表 24–5


示例 25–2 确定磁带数目

在本示例中,一个 150 MB 的磁带足以满足 489,472 字节的文件系统的需求。


# ufsdump S /export/home

489472

备份文件系统

以下是执行备份的一般原则:

Procedure如何将文件系统备份到磁带

以下是使用 ufsdump 命令备份文件系统的常规步骤。这些示例说明了选项和参数的特定用途。

  1. 成为超级用户或承担等效角色。

  2. 使系统进入运行级 S(单用户模式)。

    例如:


    # shutdown -g30 -y
    
  3. (可选)检查文件系统的一致性。

    例如:


    # fsck -m /dev/rdsk/c0t0d0s7
    

    fsck -m 命令用于检查文件系统的一致性。例如,电源故障可能会使文件处于不一致的状态。有关 fsck 命令的更多信息,请参见第 22 章,检查 UFS 文件系统一致性(任务)

  4. 如果需要将文件系统备份到远程磁带机,请执行以下步骤:

    1. 在连接磁带机的系统(磁带服务器)上,将以下项添加到该系统的 /.rhosts 文件中:


      host root

      host 项指定了要在其中运行 ufsdump 命令来执行备份的系统的名称。

    2. 在磁带服务器上,检验添加到 /.rhosts 文件中的主机是否可通过名称服务进行访问。

  5. 确定磁带机的设备名称。

    缺省的磁带机为 /dev/rmt/0 设备。

  6. 将可写的磁带插入磁带机。

  7. 备份文件系统。


    # ufsdump options arguments filenames
    

    可以备份文件系统或目录,也可以备份文件系统中的文件。有关备份各个文件的信息,请参见 tar(1)cpio(1)

    以下示例说明如何使用最常见的 ufsdump 选项和参数:

    有关其他 ufsdump 选项和参数的信息,请参见第 28 章,UFS 备份和恢复命令(参考)

  8. 如果出现提示,请取出磁带并插入下一个磁带卷。

  9. 使用卷编号、转储级别、日期、系统名称、磁盘片和文件系统标记每个磁带。

  10. 通过按 Control-D 组合键使系统回到运行级 3。

  11. 检验备份是否成功。


    # ufsrestore tf device-name
    

示例 25–3 执行根 (/) 文件系统的完整备份

以下示例说明如何执行根 (/) 文件系统的完整备份。本示例中的系统将在备份之前进入单用户模式。包括以下 ufsdump 选项:

例如:


# init 0

ok boot -s

# ufsdump 0ucf /dev/rmt/0 /

  DUMP: Date of this level 0 dump: Wed Jul 28 16:13:52 2004

  DUMP: Date of last level 0 dump: the epoch

  DUMP: Dumping /dev/rdsk/c0t0d0s0 (starbug:/) to /dev/rmt/0.

  DUMP: Mapping (Pass I) [regular files]

  DUMP: Mapping (Pass II) [directories]

  DUMP: Writing 63 Kilobyte records

  DUMP: Estimated 363468 blocks (177.47MB).

  DUMP: Dumping (Pass III) [directories]

  DUMP: Dumping (Pass IV) [regular files]

  DUMP: Tape rewinding

  DUMP: 369934 blocks (180.63MB) on 1 volume at 432 KB/sec

  DUMP: DUMP IS DONE

  DUMP: Level 0 dump on Wed Jul 28 16:13:52 2004

  # ufsrestore tf /dev/rmt/0

         2      .

         3      ./lost+found

         4      ./usr

         5      ./export

         6      ./export/home

         7      ./var

         8      ./var/sadm

         9      ./var/sadm/install

        10      ./var/sadm/install/admin

       823      ./var/sadm/install/admin/default

        11      ./var/sadm/install/logs

       697      ./var/sadm/install/logs/SUNWmpatchmgr

       905      ./var/sadm/install/logs/Additional_Software_install...

       906      ./var/sadm/install/logs/Additional_Software_install...

        13      ./var/sadm/install/.lockfile

        14      ./var/sadm/install/install.db

       824      ./var/sadm/install/special_contents

       838      ./var/sadm/install/contents

                .

                .

                .

  # (Press Control-D to bring system to run level 3)


示例 25–4 执行根 (/) 文件系统的增量备份

以下示例说明如何在单用户模式下执行根 (/) 文件系统的增量备份。包括以下 ufsdump 选项:


# init 0

ok boot -s

# ufsdump 9ucf /dev/rmt/0 /

 DUMP: Date of this level 9 dump: Wed Jul 28 14:26:50 2004

 DUMP: Date of last level 0 dump: Wed Jul 28 11:15:41 2004

 DUMP: Dumping /dev/rdsk/c0t0d0s0 (starbug:/) to /dev/rmt/0.

 DUMP: Mapping (Pass I) [regular files]

 DUMP: Mapping (Pass II) [directories]

 DUMP: Writing 63 Kilobyte records

 DUMP: Estimated 335844 blocks (163.99MB).

 DUMP: Dumping (Pass III) [directories]

 DUMP: Dumping (Pass IV) [regular files]

 DUMP: 335410 blocks (163.77MB) on 1 volume at 893 KB/sec

 DUMP: DUMP IS DONE

 DUMP: Level 9 dump on Wed Jul 28 14:30:50 2004

 # ufsrestore tf /dev/rmt/0

         2      .

         3      ./lost+found

      5696      ./usr

     11392      ./var

     17088      ./export

     22784      ./export/home

     28480      ./opt

      5697      ./etc

     11393      ./etc/default

     11394      ./etc/default/sys-suspend

     11429      ./etc/default/cron

     11430      ./etc/default/devfsadm

     11431      ./etc/default/dhcpagent

     11432      ./etc/default/fs

     11433      ./etc/default/inetinit

     11434      ./etc/default/kbd

     11435      ./etc/default/nfslogd

     11436      ./etc/default/passwd

     11437      ./etc/default/tar

                .

                .

                .


示例 25–5 执行起始目录的完整备份

以下示例说明如何执行 /export/home/kryten 起始目录的完整备份。包括以下 ufsdump 选项:


# ufsdump 0ucf /dev/rmt/0 /export/home/kryten

  DUMP: Date of this level 0 dump: Wed Jul 28 15:02:48 2004

  DUMP: Date of last level 0 dump: the epoch

  DUMP: Dumping /dev/rdsk/c0t0d0s7 (starbug:/export/home) to /dev/rmt/0.

  DUMP: Mapping (Pass I) [regular files]

  DUMP: Mapping (Pass II) [directories]

  DUMP: Writing 63 Kilobyte records

  DUMP: Estimated 2412 blocks (1.18MB).

  DUMP: Dumping (Pass III) [directories]

  DUMP: Dumping (Pass IV) [regular files]

  DUMP: 2392 blocks (1.17MB) on 1 volume at 4241 KB/sec

  DUMP: DUMP IS DONE

# ufsrestore tf /dev/rmt/0

       232      ./kryten

       233      ./kryten/filea

       234      ./kryten/fileb

       235      ./kryten/filec

       236      ./kryten/letters

       237      ./kryten/letters/letter1

       238      ./kryten/letters/letter2

       239      ./kryten/letters/letter3

       240      ./kryten/reports

       241      ./kryten/reports/reportA

       242      ./kryten/reports/reportB

       243      ./kryten/reports/reportC

#


示例 25–6 执行到远程系统的完整备份(Solaris 10 数据到 Solaris 10 系统)

以下示例说明如何在单用户模式下将 Solaris 10 系统 (mars) 上的本地 /export/home 文件系统完整备份到远程 Solaris 10 系统 (earth) 上的磁带设备。包括以下 ufsdump 选项:


# ufsdump 0ucf earth:/dev/rmt/0 /export/home

  DUMP: Date of this level 0 dump: Wed Jul 28 15:52:59 2004

  DUMP: Date of last level 0 dump: the epoch

  DUMP: Dumping /dev/rdsk/c0t0d0s7 (mars:/export/home) to earth:/dev/rmt/0.

  DUMP: Mapping (Pass I) [regular files]

  DUMP: Mapping (Pass II) [directories]

  DUMP: Writing 63 Kilobyte records

  DUMP: Estimated 8282 blocks (4.04MB).

  DUMP: Dumping (Pass III) [directories]

  DUMP: Dumping (Pass IV) [regular files]

  DUMP: Tape rewinding

  DUMP: 8188 blocks (4.00MB) on 1 volume at 67 KB/sec

  DUMP: DUMP IS DONE

  DUMP: Level 0 dump on Wed Jul 28 15:52:59 2004

# ufsrestore tf earth:/dev/rmt/0

         2      .

         3      ./lost+found

         4      ./kryten

         5      ./kryten/filea

         6      ./kryten/fileb

         7      ./kryten/filec

         8      ./kryten/letters

         9      ./kryten/letters/letter1

        10      ./kryten/letters/letter2

        11      ./kryten/letters/letter3

        12      ./kryten/reports

.

.

.

 #