In this document we address the problem of backing up and restoring sets of values in databases whose values are continuously changing. In doing so, we present the Back Up and Restore Tool (BURT). In this presentation we provide a theoretical framework that defines the problem and lays the foundation for its solution. BURT is a tool designed and implemented with respect to that theoretical framework. It is not necessary for users of BURT to have an understanding of that framework. It was included in this document only for the purpose of completeness.

BURT's basic purpose is to back up sets of values so that they can be later restored. Each time a back up is requested, a new ASCII file is generated. Further, the data values are stored as ASCII strings and therefore not compressed. Both of these facts conspire against BURT as a candidate for an archiver. Users who need an archiver should use a different tool, the Archiver[2].

BURT is just one of the tools in the Experimental Physics Industrial Control System (EPICS). It is assumed that the reader is familiar with EPICS and all its associated terminology, e.g., databases, Input/Output Controllers (IOCs), process variables, etc. A full description of EPICS can be found in [6].

BURT allows the user to make use of a number of facilities provided by the C programming language and the Standard C Library. Users of BURT are not required to use these features, however they are nonetheless available. These features are the #define and #include directives, the syntax of boolean expressions found in C, and functions found in the Standard C Library, e.g., strcmp(). It is assumed that those users who wish to take advantage of these features are familiar with them, and hence, we provide no description of them in this document. A full description of these topics in C can be found in [5] and [7].

In the next chapter we provide a general overview of BURT, i.e., we present the suite of programs that comprise BURT. Following that (Chapter 3) is a detailed description of all the components and terminology found in BURT, e.g., request files, snapshot files, etc. Chapters 4 and 5 describe how to execute BURT from a UNIX prompt and its Graphic User Interface (GUI), respectively. Chapter 6 discusses advanced features in BURT, e.g., generating your own SDDS snapshot files. Finally, we conclude with Chapter 7 where we present the theoretical framework that BURT is based upon and a discussion of where and why BURT, as implemented, falls short of that framework.

BURT is also capable of understanding Self Describing Data Set (SDDS) files as well as interacting with DevLib for the backing up and restoration of devices, although users of BURT are not required to use or even be familiar with either. We provide no description of SDDS or DevLib, instead we refer the reader to [1] for SDDS and [8] for DevLib.

Throughout the manual items surrounded by braces, i.e., {...}, should be interpreted as optional. These are found in the description of the syntax of files and as options the user may specify when executing BURT from a UNIX prompt. Filenames appear in italics. UNIX commands are prefaced with a UNIX prompt > and all commands, command line switches, and function names appear in boldface.