You can also use the SysMan dxarchiver command to perform some of these tasks. Note
A component of Digital UNIX, used for single system archiving, and packaged as an optional subset to the operating system
A separately licensed product, used for networked systems archiving
You can use these utilities to create and restore standalone, bootable tapes of the operating system and file systems.
Instructions for installing NetWorker SingleServer Save and Restore are in the Digital UNIX Installation Guide.
NetWorker SingleServer is a subset of Digital's POLYCENTER NetWorker Save and Restore which backs up and restores files on multiple machines across a TCP/IP network, in addition to single machines.
NetWorker SingleServer is shipped with preconfigured settings that provide you with the ability to start backing up files immediately.
NetWorker SingleServer protects your data by automating the day-to-day process of backing up the server. NetWorker SingleServer offers features similar to the multiclient NetWorker products -- except that it supports a single client rather than multiple clients. When NetWorker SingleServer is installed on a machine, the machine becomes a client of itself.
Currently, a Digital UNIX user must know what utility ( tar, cpio, dump/restore, or vdump/vrestore) was used to perform a backup in order to restore information from the archive. NetWorker SingleServer eliminates the need to know what utility was used to perform the backup.
The NetWorker SingleServer utility offers the following features:
To create the SAS kernel, you must use the btcreate utility. Once you have created the kernel, you can restore the customized image using the btextract utility. The following sections provide an overview of the btcreate and btextract utilities. For information on syntax and examples, see the reference page for each utility.
The btcreate utility provides both a noninteractive and interactive user interface. Both require that you have superuser privileges before using. To execute, this utility requires 156000 blocks (512 bytes per block) of disk space in the /usr directory.
UFS:
/dev/rz1a / ufs /dev/rz1g /usr ufs
AdvFS:
root_domain#root / advfs usr_domain#usr /usr advfs
Do not select swap partitions for file system backups. Note
config vmunix root on md pseudo-device memd 30720These modifications indicate that a memory file system of 30720 is being configured. The memory file system and the disk partition where the miniroot file system reside are equivalent in size.
After modifying the configuration file, the btcreate utility executes the doconfig command and moves the bootable kernel to the /usr/sys/bin directory. For information on syntax format and flags, see the btcreate reference page.
Performing a DEFAULT restore, you can duplicate the customized system on more than one machine of the same hardware platform type; however you cannot specify which disk partitions to use for the restore operation. Instead, the btextract utility restores file systems using the disk partition information gathered during the btcreate session; all existing information is overwritten.
Performing an ADVANCED restore, you can specify which disk partition to use, but the customized system can only be duplicated on a machine of the same hardware platform type.
To use the btextract utility, place the system in a halt state, initialize the system, then boot from the tape as follows:
>>> init >>> show dev >>> boot -fl "nc" MKA500
In the previous example, the show dev command provides the device name under BOOTDEV and MKA500 is the BOOTDEV.
After the initial boot is complete, the shell invokes the btextract utility. If you created a /usr/lib/sabt/sbin/custom_install.sh script during the btcreate session, the btextract utility invokes the custom_install.sh script before exiting. See the btcreate reference page for more information.
After the btextract utility completes its task, you must shut down the system, then reboot the system from the restored disk as follows:
# shutdown -h now >>> boot DKA100
In this example, DKA100 is the BOOTDEV.
For more information and examples, see the btextract reference page.
Each file system backup is a single process. To ease the backup process, organize your file systems so that dynamic files are on file systems that are backed up regularly and static files are on file systems that are backed up occasionally. You may find that you have dynamic files on file systems that are backed up occasionally. If this happens and you wish to back them up regularly, just prior to performing a backup, copy the frequently changing files to systems that are backed up regularly. This allows you to back up those files without backing up an entire file system. You could write a shell script to automate these tasks for you.
The dump command copies all designated UFS file systems, or individual files and directories changed after a specified date, to a file, pipe, magnetic tape, disk, or diskette. The vdump command copies all AdvFS filesets. Refer to Chapter 8 for information on copying AdvFS file systems. You must have superuser privileges to use the dump command.
To produce valid backups on a UFS file system, you must back up a file system while it is inactive. It is recommended that you unmount the file system and check it for consistency. As an added precaution, put the system into single-user mode before starting your backup operations. This is not true for AdvFS. Refer to Chapter 8 for information on restoring AdvFS file systems. Note
You can back up the system while in either multiuser mode or single-user mode. However, backups performed on file systems actively being modified might corrupt the backup data. The dump command operates by checking the inodes of the files you want to back up. The inodes contain data such as table entries and other statistics. When you use the dump command to back up files in a file system, an inode is attached to each file. If the system or user activity changes a file after the inode data is recorded, but before the file is backed up, the backup may be corrupted.
To shut down the system, unmount a file system, and check the integrity of a file system:
For example, to shut down the system in 5 minutes and give users periodic warning messages, enter:
# /usr/sbin/shutdown +5 'System going down to perform backups'
# /sbin/umount -aNote that the root file system remains mounted.
For example, to check a file system for an RZ57, unit 0, partition c, enter:
# /sbin/fsck -o /dev/rz0c
find
(1), tar
(1), and cpio
(1)
reference pages for more information.
It is not necessary to back up all the files in a file system at each backup. Back up only those files that have changed since a previous backup; this is called an incremental backup. Using the dump and restore commands, you can perform up to nine levels of incremental backups. For example, while a level 0 dump backs up an entire file system, a level 1 dump backs up only those files since the last level 0 dump, and a level 7 dump backs up only those files since the last lower level dump.
To integrate incremental backups into your file backup schedule, you need to balance the time and tape space required for backup against the amount of time it could take you to restore the system in the event of a system failure. For example, you could schedule backup levels following the 10-day sequence:
[0 1 2 3 4 5 6 7 8 9]
On the first day you save an entire file system (level 0). On the second day you save changes since the first backup and so on until the eleventh day when you restart the sequence. This makes the amount of time spent and data saved on each backup relatively small each day except the first; however, if a system failure on the tenth day requires that you restore the entire system, you must restore all ten tapes.
Most systems follow some variant of the common Tower of Hanoi backup schedule. Once a month you make a level 0 dump to tape of all the regularly backed up file systems. Then once a week, you make a level 1 dump to start a daily sequence of:
[...3 2 5 4 7 6 9 8 9 9 ...]
If you do backups only once a day on the weekdays, you end up with a monthly backup schedule as follows:
[0 1 3 2 5 4 1 3 2 5 4 ...]
This schedule, although slightly complex, requires that you restore at most four tapes at any point in the month if a system failure corrupts files. Of course, doing a level 0 dump daily requires that you restore at most one tape at any point, but requires a large amount of time and tape storage for each backup. On most days in the Tower of Hanoi schedule, very little time and tape storage are required for a backup.
dump options filesystem
The options parameter specifies a list of flags and their arguments and the filesystem parameter specifies the file system to be backed up. You should specify the file system with a full pathname. The dump command can back up only a single file system at a time, but there may be several dump processes simultaneously writing files to different tape devices.
The dump
(8) reference page describes the command options that you use
to specify the characteristics of the tape device, such as block size, tape
storage density, and tape length. The following list describes the most commonly
used options to the dump command:
dump
(8) reference page describes the format of this file.
To back up your entire file system to the default backup device, use the dump command for each file system on your machine. The dump command has the following command syntax:
dump-0u filesystem
The filesystem parameter specifies the name of a file system on your machine. The -0u option causes a level 0 dump and updates the /etc/dumpdates file with the time and date of the backup for each file system. This creates an initial point on which to base all future incremental backups until the next full or level 0 dump. Note that each file system must be backed up individually.
For example, if you want to perform a level 0 dump of the root, /usr, and /projects file system partitions, follow these steps:
# dump -0u /After completing the backup, remove the tape from your tape drive.
# dump -0u /usrAfter completing the backup, remove the tape from your tape drive.
# dump -0u /projects
# dump -0uf /dev/nrmt0h / # dump -0uf /dev/nrmt0h /usr # dump -0uf /dev/nrmt0h /projectsThe previous example may require additional media management to cross-reference dump files with tapes, especially when a single dump file spans media. Exercise care when labeling this type of backup media.
Once you have established a system for making incremental backups, the procedure is simple. Assume you use the following backup schedule to do a daily backup of /usr:
0 1 9 9 9 1 9 9 9 9 . . .On Monday, perform a level 0 dump:
# dump -0u /usrOn Tuesday, perform a level 1 dump:
# dump -1u /usrThe level 1 dump backs up all the files that changed since Monday. On Wednesday through Friday you perform a level 9 dump (which always backs up all the files that have changed since Tuesday's level 1 dump):
# dump -9u /usrTo perform the same level 9 dump to the tape device named /dev/rmt1h instead of the default tape device, use the -f option as shown in the following example:
# dump -9uf /dev/rmt1h /usrThe argument to the -f option specifies a tape device local to the system from which you are performing the dumps.
rdump-f machine:device options filesystem
The machine parameter specifies the name of the remote machine that has the backup device and device specifies the name of the backup device on that remote machine. The colon (:) between the machine and device parameters is necessary just as in other network file-addressing mechanisms.
The options parameter refers to the same list of flags available with the dump command.
The filesystem parameter refers to the local file system to be backed up.
The rdump command updates the /etc/dumpdates file on the local machine in the same way as does the dump command. The rdump command starts a remote
server, /usr/sbin/rmt, on the remote machine to access
the storage medium. This server process should be transparent. Refer to
the rmt
(8) reference page for more information.
To back up the /projects file system from machine1 onto a tape drive on machine2 with the attached backup device /dev/rmt0h, enter the following command from machine1. The name of machine1 must be in the /.rhosts file of machine2 to allow access from machine1 to machine2.
# rdump -0uf machine2:/dev/rmt0h /projectsThe
dump
(8) reference page describes the options
to the rdump command.
Backup shell scripts often perform the following tasks:
Note that backup shell scripts are best used when the dump is small enough to fit on a single tape. You will need to specify the no-rewind device and the -N option to the dump command to inhibit the tape from automatically going off line when each dump completes. When dump reaches the end of the tape, it will take the tape off line and someone will need to be available to replace the tape.
If a serious problem occurs, you may have to restore your entire system. Before restoring, determine what caused the problem with the system.
After determining the cause of the problem, reinstall your system from the initial boot tapes. The installation instructions that came with your system explain this procedure.
Once your system is up and running, restore the system to the state it was in just prior to the system crash. If you are using AdvFS, use the vrestore command. Refer to Chapter 8 for information on restoring the AdvFS file system. If you are using UFS, use the restore command to restore data from tapes made with the dump command. Because the dump command saves a single file system at a time, you must execute the restore command for each file system you wish to restore. The restore command has the following command syntax:
restoreoptions
When you restore a UFS file system, you create a new file system and restore the files from the dump files by using the following command syntax. Refer to Chapter 8 for information on restoring an AdvFS file system.
newfsraw_device
mountblock_device [ filesystem]
cdfilesystem
restore-Yrf dump_file
If the disk does not have a label, write the label by using the disklabel command before you create the new file system. Use the following command syntax to determine if the disk has a label:
Writing a label with customized partition table settings may affect the entire disk. Use the following command syntax to write the default disk partition table:
Invoke the editing option of the disklabel command
to use the customized partition table settings. Refer to Chapter 7
or to disklabel
(8) for more information.
The raw_device parameter specifies the full raw device pathname of the disk device on your system. The block_device parameter specifies the full block device pathname of the disk device on your system. The filesystem parameter specifies the full pathname of the file system you want to make available. The dump_file parameter specifies the full pathname of the file containing the dump data.
The following example shows the commands you use to restore a file system called /usr/projects on an RZ57 disk from a tape:
# disklabel -rw rz1 rz57 # newfs /dev/rrz1c # mount /dev/rz1c /usr/projects # cd /usr/projects # restore -Yrf /dev/rmt0h
vrestore
(8) reference page for information.By asking when the file was lost and when it was last modified, you can use your backup log to determine which tape contains the most recent version of the wanted file. Use the -t option with the restore command to determine whether a file is on the selected tape. Use the following syntax:
restore-t ./filename
The -t option creates a list of files and directories on the tape that matches the ./filename argument. For example, to list the contents of the working subdirectory of the /usr file system on a particular backup tape, load the tape and enter:
# restore -t ./workingTo create a list of the entire contents of a backup tape, load the backup tape and enter:
# restore -tMake a listing of each backup tape after you create it. This verifies a successful backup and gives you a place to look up what files are on the tape.
After determining the location of the file, create a new directory for the file. If you restore the file into an existing directory and the file already exists, the restored file will overwrite the existing file. Restore the file by using the following form of the restore command:
restore-x ./filename
The file will be restored into your current working directory.
For example, to restore the working/old.file file from a /usr file system backup tape into your current directory, load the backup tape and enter:
# restore -x ./working/old.fileTo restore the entire contents of the working subdirectory from the same tape, enter:
# restore -x ./workingIf your dump media contains multiple dump images, you need to know the sequence of the dump images in order to restore a file from one of the images. To examine the contents of the first dump image on the media, load the tape and enter:
# restore -ts 1The -s option followed by the number 1 specifies the first dump image.
For example, to restore the working/old.file file from a /usr file system, which is the third dump image on the backup tape into your current directory, load the backup tape and enter:
# restore -xs 3 ./working/old.file
To begin an interactive restore session, enter:
# restore -iThe system responds with the following prompt:
restore >The following command-line options are available in the interactive restore mode:
# restore -iOnce in interactive mode, follow these steps to add the files to the list of files to be extracted:
restore > cd working
restore > add file1
restore > add file2
restore > extract
You have not read any tapes yet. Unless you know which volume your file(s) are on you can start with the last volume and work towards the first. Specify next volume #: 1You are then asked whether the extract affects the access modes of the dot (.). For this example, reply with n.
set owner/mode for '.'? [yn] n
restore > quit
You can automate this procedure in a command file that is read by the -F option to the restore command. For example, the following command file, named restore_file, performs the restore operation shown in the previous example:
cd working add file1 add file2 extract 1 n quitTo read and execute this shell script, enter the following command:
# restore -iF restore_fileThe result of the procedure in this script is identical to that of the previous interactive restore session.
rrestore-f machine:device [options]
The machine argument specifies the name of the remote machine where the backup device is attached, and device specifies the name of the backup device on that remote machine. The colon (:) between machine and device is necessary just as in other network file-addressing mechanisms.
The options for the rrestore command are the same as for the restore command. See Section 12.5 for a description of the options.
To restore the ./working/file1 file onto the local directory on machine1 from a backup tape mounted on machine2 where the backup device /dev/rmt0h is attached, enter the following command from machine1. The name machine1 must be in the /.rhosts file of machine2 to allow access from machine1 to machine2.
# rrestore -xf machine2:/dev/rmt0h ./working/file1The rrestore command starts a remote server, /usr/sbin/rmt, on the remote machine to access the storage medium. This process should be transparent. Refer to the
rmt
(8)
reference page for more information. See Section 12.5 for
a description of the options to the rrestore command.
The procedure in this section requires that you have access to the most recent dump files of your root and /usr file systems. You should use this procedure only when a catastrophic error occurs on the system disk, such as a disk crash or when an inadvertent deletion of either the root or /usr file systems renders the system inoperative.
The following example assumes that you are restoring from level 0 dump files and that you are using the text-based (or character cell) interface to the task.
MAKEDEVmnemonic
The mnemonic parameter refers to a device mnemonic. See Appendix A for a list of the supported device mnemonics. For example, to create the special files for an RZ57 disk, unit number 0, and a TLZ06 tape, unit number 5, enter:
# cd /dev # ./MAKEDEV rz0 tz5
MAKEDEVmnemonic
The mnemonic parameter refers to a device mnemonic. See Appendix A for a list of the supported device mnemonics. For example, to create the special files for an RZ57 disk, unit number 0, enter:
# cd /dev # ./MAKEDEV rz0
ifconfiginterface_id local_address mask
The interface_id parameter refers
to the network device mnemonic. Refer to the uerf
(8) reference page
for information about obtaining an interface ID. The local_address parameter specifies the Internet address for the local host.
The netmask mask parameter
specifies how much of the address to reserve for subdividing networks into
subnetworks. You can get the netmask value by entering
the ifconfig command on a system within the immediate area.
For example, to get the netmask value from the system ln0, enter:
# ifconfig ln0Refer to the
hosts
(4) and ifconfig
(8)
reference pages for more information. Enter the following commands to configure
the network for the system localsystem, with an Internet
address of 120.105.5.1, connected by an Ethernet interface to the remote system remotesystem, with an Internet address of 120.105.5.2: # cd /etc # echo "127.0.0.1 localhost" >> hosts # echo "120.105.5.2 remotesystem" >> hosts # ifconfig ln0 120.105.5.1 netmask 0xfffffc00Some older systems broadcast all 0s instead of all 1s. In this situation, you must also specify the broadcast address.
# cd /
disklabel-r disk
Use the disklabel command with the following syntax to write the default disk partition table:
disklabel-rw disk disk_type
The disk parameter specifies the disk that includes the device mnemonic and unit number. The disk_type parameter specifies the type of disk associated with disk as described in the /etc/disktab file. For example, to write the default disk partition tables on an RZ57 disk, unit 0, enter the following command:
# disklabel -rw rz0 rz57
The disklabel command used in this procedure writes the default disk partition tables to the disk. Writing a label with customized partition table settings may affect the entire disk. If the disk you are restoring has customized partition table settings, invoke the editing option of the disklabel command. Refer to Chapter 7 or to the Note
disklabel
(8) reference page for more information.
newfsraw_device
The raw_device parameter specifies the full raw device pathname of the disk device on your system. For example, to create a new file system on an RZ57, unit 0, enter:
# newfs /dev/rrz0a
mountblock_device [ /mnt]
The block_device parameter specifies the full block device pathname of the disk device. For example, to mount the file system created in the previous step, enter:
# mount /dev/rz0a /mnt
restore[ -Yrf] [ dumpfile]
The dumpfile parameter specifies the pathname of the file that contains the dump data. For a tape, you would enter the following commands:
# cd /mnt # restore -Yrf /dev/rmt0h
rsh[ remote_hostname ] [ "dd if=dumpfile bs=blocksize" | restore -Yrf -]
The remote_hostname parameter specifies the host name of the remote system that contains the dump file. The dumpfile parameter specifies the full pathname of the dump file on the remote system, and the blocksize parameter is necessary for reading from a tape.
The dump file must be read with the same block size as was used when writing to the tape. The default dump record size is 10 KB.
For example, to restore a dump file on a TLZ06 from the remote system remotesystem that was written using the default block size, enter:
# cd /mnt # rsh remotesystem "dd if=/dev/rmt0h bs=10k" | restore -Yrf -
# cd / # umount /mnt
# newfs /dev/rrz0g # mount /dev/rz0g /mnt # cd /mnt # restore -Yrf /dev/rmt0h # cd / # umount /mnt
# cd /dev # MAKEDEV rz1 # cd / # disklabel -rw rz1 rz57 # newfs /dev/rrz1c # mount /dev/rz1c /mnt # cd /mnt # restore -Yrf /dev/rmt0h # cd / # umount /mnt
# halt
.
.
.
Select one of the following options: 1) Default Installation 2) Custom Installation 3) UNIX Shell Enter your choice: 3 # cd /dev # MAKEDEV rz0 tz5 MAKEDEV: special file(s) for rz0: rz0a rrz0a rz0b rrz0b rz0c rrz0c rz0d rrz0d rz0e rrz0e rz0f \ rrz0f rz0g rrz0g rz0h rrz0h MAKEDEV: special file(s) for tz5: rmt0l nrmt0l rmt0h nrmt0h rmt0m nrmt0m rmt0a nrmt0a # cd / # disklabel -rw rz0 rz57 # newfs /dev/rrz0a Warning: 575 sector(s) in last cylinder unallocated /dev/rrz0a: 40960 sectors in 39 cylinders of 15 tracks, \ 71 sectors 21.0MB in 3 cyl groups (16 c/g, 8.72MB/g, 2048 i/g) super-block backups (for fsck -b #) at: 32, 17152, 34272, # mount /dev/rz0a /mnt # cd /mnt # restore -Yrf /dev/rmt0h # cd / # umount /mnt # newfs /dev/rrz0g Warning: 105 sector(s) in last cylinder unallocated /dev/rrz0g: 614400 sectors in 577 cylinders of 15 tracks, 71 \ sectors 314.6MB in 37 cyl groups (16 c/g, 8.72MB/g, 2048 i/g) super-block backups (for fsck -b #) at: 32, 17152, 34272, 51392, 68512, 85632, 102752, 119872, 136992, 154112, 171232, 188352, 205472, 222592, 239712, 256832, \ 272672, 289792, 306912, 324032, 341152, 358272, 375392, 392512, 409632, \ 426752, 443872, 460992, 478112, 495232, 512352, 529472, 545312, 562432, \ 579552, 596672, 613792, # mount /dev/rz0g /mnt # cd /mnt # restore -Yrf /dev/rmt0h # cd / # umount /mnt # halt syncing disks... done halting.... (transferring to monitor)
.
.
.
Select one of the following options: 1) Default Installation 2) Custom Installation 3) UNIX Shell Enter your choice: 3 # cd /dev # MAKEDEV rz0 MAKEDEV: special file(s) for rz0: rz0a rrz0a rz0b rrz0b rz0c rrz0c rz0d rrz0d rz0e rrz0e rz0f rrz0f rz0g \ rrz0g rz0h rrz0h # cd /etc # echo "127.0.0.1 localhost" >> hosts # echo "120.105.5.2 remotesystem" >> hosts # ifconfig ln0 120.105.5.1 netmask 0xfffffc00 # cd / # disklabel -rw rz0 rz57 # newfs /dev/rrz0a Warning: 575 sector(s) in last cylinder unallocated /dev/rrz0a: 40960 sectors in 39 cylinders of 15 tracks, 71 sectors 21.0MB in 3 cyl groups (16 c/g, 8.72MB/g, 2048 i/g) super-block backups (for fsck -b #) at: 32, 17152, 34272, # mount /dev/rz0a /mnt # cd /mnt # rsh remotesystem "dd if=/dev/rmt0h bs=10k" | restore -Yrf - 1743+0 records in 1743+0 records out # cd / # umount /mnt # newfs /dev/rrz0g Warning: 105 sector(s) in last cylinder unallocated /dev/rrz0g: 614400 sectors in 577 cylinders of 15 tracks, 71 sectors 314.6MB in 37 cyl groups (16 c/g, 8.72MB/g, 2048 i/g) super-block backups (for fsck -b #) at: 32, 17152, 34272, 51392, 68512, 85632, 102752, 119872, 136992, 154112, 171232, 188352, 205472, 222592, 239712, 256832, 272672, 289792, 306912, 324032, 341152, 358272, 375392, 392512, 409632, 426752, 443872, 460992, 478112, 495232, 512352, 529472, 545312, 562432, 579552, 596672, 613792, # mount /dev/rz0g /mnt # cd /mnt # rsh remotesystem "dd if=/dev/rmt0h bs=10k" | restore -Yrf - 19922+0 records in 19922+0 records out # cd / # umount /mnt # halt syncing disks... done halting.... (transferring to monitor)