Archivo de copia de seguridad

Finalidad

Copia el sistema de archivos en un soporte de almacenamiento temporal.

Descripción

Una copia de seguridad del sistema de archivos proporciona protección contra pérdidas importantes de datos debidas a accidentes o errores. El mandato copia de seguridad graba las copias de seguridad del sistema de archivos en el formato de archivo copia de seguridad y, por el contrario, el mandato restaurar lee las copias de seguridad del sistema de archivos. El archivo de copia de seguridad contiene varios tipos diferentes de registros de cabecera junto con los datos de cada archivo del que se realiza una copia de seguridad.

Registros de cabecera

Los diferentes tipos de registros de cabecera para las copias de seguridad por nombre son:

registro de cabecera Descripción
VOLUMEN_FS Existe en cada volumen y contiene la etiqueta de volumen.
FS_XX_ENCODE_CASE_ONE nombre_x Contiene una descripción de un archivo del que se ha realizado una copia de seguridad por nombre.
FS_FIN Indica el final de la copia de seguridad. Esta cabecera aparece al final del último volumen.

Los diferentes tipos de registros de cabecera para las copias de seguridad por inodo y nombre son:

registro de cabecera Descripción
TS_CINTA Existe en cada volumen y contiene la etiqueta de volumen.
TS_BITS Describe la estructura de directorios.
TS_CLRI Describe los números de i-nodo no utilizados en el sistema de copia de seguridad.
TS_INODE Describe el archivo.
TS_ADDR Indica una continuación del archivo anterior.
TS_FIN Indica el final de la copia de seguridad.

Las descripciones de los campos de la estructura de cabecera para las copias de seguridad por inodo son:

registro de cabecera Descripción
c_type El tipo de cabecera.
c_date La fecha de vuelco actual.
c_ddate La fecha de vuelco del sistema de archivos.
c_volume El número de volumen.
c_tapea Número del registro de cabecera actual.
c_inumber El número de inodo en este registro.
c_magic El número mágico.
c_checksum El valor que convertiría la suma de registro en el valor SUMA de comprobación .
bsd_c_dinode Una copia del i-nodo BSD tal como aparece en el sistema de ficheros BSD.
c_count El número de caracteres en elc_addr.
c_addr Matriz de caracteres que describe los bloques que se están volcando para el archivo.
xix_flag Establézcalo en el valor XIX_MAGIC si realiza la copia de seguridad de un sistema de archivos.
xix_dinode El di-node real del sistema de archivos.

Cada volumen excepto el último termina con una marca de cinta (leída como un final de archivo). El último volumen finaliza con un registro TS_FIN y, a continuación, la marca de cinta.

Formato por nombre

El formato de una copia de seguridad por nombre es:

VOLUMEN_FS

FS_XX_ENCODE_CASE_ONE nombre_x (antes de cada archivo)

Datos de archivo

FS_FIN

Formato de subnodo

El formato de una copia de seguridad por inodo es el siguiente:

VOLUMEN_TS

TS_BITS

TS_CLRI

TS_INODE

TS_FIN

A continuación se proporciona una descripción detallada del archivo de cabecera de inodo:

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;

Constants

Las constantes utilizadas para distinguir estos diferentes tipos de cabeceras y definir otras variables son:

#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     */