备份文件
用途
将文件系统复制到临时存储介质上。
描述
文件系统的备份可提供保护,防止由于意外或错误而导致大量数据丢失。 备份 命令以 备份 文件格式写入文件系统备份,而 复原 命令则以相反方式读取文件系统备份。 备份文件包含几个不同类型的头记录以及备份的每个文件中的数据。
头记录
用于按名称备份的不同类型的头记录为:
| 头记录 (header record) | 描述 |
|---|---|
| FS_VOLUME | 存在于每个卷上并保存卷标。 |
| FS_NAME_X | 保存通过名称备份的文件的描述。 |
| FS_END | 指示备份的结束时间。 此头显示在最后一个卷的末尾。 |
用于按索引节点和名称备份的不同类型的头记录为:
| 头记录 (header record) | 描述 |
|---|---|
| TS_TAPE | 存在于每个卷上并保存卷标。 |
| TS_BITS | 描述目录结构。 |
| TS_CLRI | 描述备份系统上未使用的索引节点号。 |
| TS_INODE | 描述文件。 |
| TS_ADDR | 指示先前文件的连续状态。 |
| 结束 | 指示备份的结束时间。 |
用于 by-inode 备份的头结构字段的描述为:
| 头记录 (header record) | 描述 |
|---|---|
| c_type | 头类型。 |
| c_date | 当前转储日期。 |
| c_ddate | 文件系统转储日期。 |
| c_volume | 卷号。 |
| c_tapea | 当前头记录的数量。 |
| c_inumber | 此记录上的索引节点号。 |
| c_magic | 神奇的数字 |
| c_checksum | 将使记录总和为 校验和 值的值。 |
| bsd_c_dinode | 出现在 BSD 文件系统上的 BSD 索引节点的副本。 |
| c_count | 以下项中的字符数:c_addr。 |
| c_addr | 一个字符数组,用于描述要为文件转储的块。 |
| xix_flag | 如果执行文件系统的备份,请设置为 XIX_MAGAL 值。 |
| xix_dinode | 来自文件系统的真实双节点。 |
除最后一个卷外,每个卷都以磁带标记结束 (作为文件结束读取)。 最后一个卷以 结束 记录结束,然后是磁带标记。
按名称格式
按名称进行备份的格式为:
FS_VOLUME
FS_NAME_X (在每个文件之前)
文件数据
FS_END
按索引节点格式
下面是按索引节点备份的格式:
卷 (TS_VOLUME)
TS_BITS
TS_CLRI
TS_INODE
结束
以下是对 by-inode 头文件的详细描述:
union u_spcl {
char dummy[TP_BSIZE];
struct s_spcl {
int c_type; /* 4 */
time_t c_date; /* 8 * /
time_t c_ddate; /* 12 */
int c_volume; /* 16 */
daddr_t c_tapea; /* 20 */
ino_t c_inumber; /* 24 */
int c_magic; /* 28 */
int c_checksum; /* 32 */
struct bsd_dinode bsd_c_dinode; /* 160 */
int c_count; /* 164 */
char c_addr[TP_NINDIR]; /* 676 */
int xix_flag; /* 680 */
struct dinode xix_dinode; /* 800 */
} s_spcl;
} u_spcl;常量
用于区分这些不同类型的头和定义其他变量的常量是:
#define OSF_MAGIC (int)60011
#define NFS_MAGIC (int)60012 /* New File System Magic */
#define XIX_MAGIC (int)60013 /* Magic number for v3 */
#define BYNAME_MAGIC (int)60011 /* 2.x magic number */
#define PACKED_MAGIC (int)60012 /* 2.x magic number for */
/* Huffman packed format */
#define CHECKSUM (int)84446 /* checksum magic number */
#define TP_BSIZE 1024 /* tape block size */
#define TP_NINDIR (TP_BSIZE/2) /* num of indirect pointers */
/* in an inode record */
#define FS_VOLUME 0 /* denotes a volume header */
#define FS_END 7 /* denotes an end of backup */
#define FS_NAME_X 10 /* denotes file header */
#define SIZSTR 16 /* string size in vol header*/
#define DUMNAME 4 /* dummy name length for */
/* FS_NAME_X */
#define FXLEN 80 /* length of file index */