ISiBackup is a bash script and therefore can be easily parametrized using normal bash syntax. The configuration files (the main one is called isibackup.conf and the individual ones per set are called set.conf) are "sourced" so the may actually contain program logic instead of just configuration parameters, although I disencourage that ;-)
The next table lists the configuration parameters in alphabetical order and gives the point of their first definition as "given" (when part of the program code), as "main" (when part of the configuration file isibackup.conf) or as "set" when part of the set definition set.conf. As the order of inclusion is "given - default - set", any "given" parameters can be overridden in isibackup.conf, and any "given" and "default" parameters can be overridden in the "set" configuration.
Table 2. ISiBackup Configuration Parameters
| Name | Command line option | Default value or value range | Example value | First definition (given, default, set, command line) | Description |
|---|---|---|---|---|---|
| AUTHORS | Written by Marcus Holthaus and Simon Huerlimann. | given | A String describing the authors of this program | ||
| AUTO_FULL | true | true | false | main, set | Consider you are creating a differential backup. A differential backup is only useful if you have the full backup that contains the files that were modified before the start date of the differential backup. So if there is no full backup of the same set available, should isibackup create that instead of the differential backup? | |
| BACKUP_ROOT | /var/backups/isibackup | /mnt/isibackup | given, main, set | Backup target root directory, to be used as part of target names.. | |
| CMD_CUT | cut | given | Command to cut fragments out of strings. | ||
| CMD_CRYPT | gpg | pgp | main, set | What method should be used for encrypting the generated backup files? If this option is an empty string, the backup will not be encrypted. If it is gpg or pgp, the respective program will be used (while pgp is not implemented yet), and the encryption key (or recipient key) will be the one set with CRYPT_KEY | |
| CMD_DATE | date -I | given | Command used to create an ISO compatible date string. | ||
| CMD_DATE_FULL | date "+%Y-%m-%d-%H-%M-%S" | given | Command used to create a full date including hour, minute, second | ||
| CMD_FTP | lftp | given | Command used for FTP up- and download (actually, this must remain lftp unless there is another command that understands lftp command line syntax) | ||
| CMD_HOSTNAME | hostname -f | given | command to determine the fully qualified hostname | ||
| CMD_LOCKFILE | lockfile | given | command to create a lock file | ||
| CMD_PACK | cpio | cpio.bz2 | cpio.gz | cpio.zip | tar | tar.bz2 | tar.gz | tar.zip | rar | zoo | zip | main, set | What method sould be used to collect and to compress the backup files? You may wither select a collector (cpio, tar) with an optional compressor (bzip2, gz, zip) , or a combined method (rar, zoo, zip). Please note that while rar and zoo do collect and compress as well as zip, ony zip has been implemented as independent compress-only method. | ||
| CMD_PRUNE | isiprune | given | isiprune is a tool from the isitools package that is used to delete empty subdirectories from a backup directory. | ||
| CMD_RSYNC | rsync | given | Command used for rsync (actually, this must remain rsync unless there is another command that understands the rsync command line syntax) | ||
| CMD_TEMPFILE | $(tempfile -s "$PROGRAM_IDENT") | given | Program used for generating temporary file names. | ||
| CMD_TR | tr | given | Command to transcode strings | ||
| COPYRIGHT | Copyright (C) 1999-2004 IMSEC GmbH | given | Copyright string | ||
| CRYPT_KEY | -k|--key {key} | $(NET) Backup $(date +%Y) | Domain Backup 2004 | main, set, command line | The identification string of the key that shoudl be used as the recipient key for the backup target files. Of course, CMD_CRYPT must be set to enable encryption. Furthermore, the preferred encyption method must be available (commands pgp or gpg), and the public key must be part of the locally installed keyring of the user that is currently running ISiBackup. Please note that while you definitively need the private part of the key for decrypting and restoring the backup, you do not need the private key while backing up - it need not be on the system being backed up. |
| DEF_BLOCKSIZE | 4 | 8 | given | Default size of one directory in blocks. Directories occupy space on the target drive as well and this factor assumes that one directory uses an average of 4 blocks. | |
| DEF_PACKEDBLOCKSIZE | 1 | 2 | given | Default size of a packed directory name. Normally a packed directory name with all the other information occupies much less than a kByte, but 1 is the minimum of this value and therefore includes some reserve. | |
| DELAY | 0 | 3s | given | Delay for debugging purposes. At several locations in the program, statements like sleep $DELAY have been inserted. When starting isibackup with set -vx, this allows for debugging of dealyed functions. | |
| DIR_PERMS | 2770 | 755 | given | The permissions of the directories inside the backup. Normally, the "s" flag is set (hence the 2 at the beginning) so that newly created subdirectories inherit the target's permissions and ownerships. | |
| DIR_PERMS_SET | true | true or false | main, set | Is ISiBackup allowed to set the permissions of target directories? This should be set to false whenever the target directory does not support permissions (i.E. VFAT or smbfs) or when the upload is being done as a user that must not set permissions. Otherwise, it should be left as true | |
| DIRLIST_ENTRY | ###isibackup-dirlist### | given | "Escape" string used as one of the input file names, in order to create an otherwise empty output archive with all of the directories attributes and ownerships. | ||
| FILE_PERMS | 660 | 644 | given | The permissions of the files inside the backup. | |
| FILE_PERMS_SET | true | true or false | main, set | Is ISiBackup allowed to set the permissions of target files? This should be set to false whenever the target directory does not support permissions (i.E. VFAT or smbfs) or when the upload is being done as a user that must not set permissions. Otherwise, it should be left as true | |
| FILE_RSYNC_LOG | /var/tmp/isibackup.1234 | given | Internal name of the temporary rsync log. The rsync log is not just being added to the ISiBackup log, but it is stored in here first, and only after the termination of the rsync process, it is appended to the isibackup log. Don't change this. | ||
| HOST | $(hostname) | elephant | given | The host name of the host that this ISiBackup is running on. This can be used as part of the name of the backup directory location. Hence, backup directories can be named depening on the name of the host. | |
| IDENT_GROUP_BACKUP | backup | wheel | given | The later group owner of the backuped files in the target directory. This can easily be overridden in the main configuration file or even on a set.conf basis. However, the backup group is an appropriate group owner of this file (pending: check the debian policy for this) | |
| IDENT_GROUP_SET | true | true or false | main, set | Is ISiBackup allowed to change the group owner of target files? This should be set to false whenever the target directory does not support group ownerhips (i.E. VFAT or smbfs) or when the upload is being done as a user that must not or cannot change group ownership. Otherwise, it should be left as true | |
| IDENT_USER_SET | true | true or false | main, set | Is ISiBackup allowed to change the owner of target files? This should be set to false whenever the target directory does not support ownerhips (i.E. VFAT or smbfs) or when the upload is being done as a user that must not or cannot change ownership. Otherwise, it should be left as true | |
| ISIBACKUP_CONF | /etc/isibackup.conf | given | Name of the main configuration file. | ||
| ISIBACKUP_SET_CONF | set.conf | given | Name of the set configuration file | ||
| LIABILITY | This program comes with NO WARRANTY, to the extent permitted by law. | given | Liability restrictions | ||
| LOCKDIR | /var/lock | /tmp | given | The directory where lock files should be placed. Normally, lock files will be placed inside /var/lock, but as ISiBackup need not be executed as root, and as non-root users normally cannot write into /var/lock, it is failsafe to put it in /tmp (well, almost). Of course, this does not catch the case where a root and a non-root user execute the same backup set simultaneously - this might lead to trouble. (pending). | |
| LOCKFILE | host.domain.com.isibackup.all.lock | something.lock | given | The name of the lock file. It should be distiguishable from other lock files and its name may well be speaking. | |
| LOCKTIME | 864000 | 172800 | given | Maximum time the backup of a particular set runs exclusively. After that, the lock times out and another backup of the same set is allowed (which is not healthy at all). Upon normal termination, ISiBackup removes the lock file, so that after the end of an ISiBackup run another ISiBackup may start running immediately. | |
| LOG_DIR | /var/log/isibackup | /mnt/isibackup | given, main, set | Name of the directory where log files should be stored. | |
| LOG_ERROR_FILE | ${LOG_DIR}/isibackup-${OPT_SET}-${STARTDATETIME}.error.log | main | Name of the log file where all error log messages go. ISiBackup is not integrated with syslog, but uses its own logging concept by createing one log file per backup run (and an additional main log file per backup run). | ||
| LOG_FILE | -l {File} | --log {File} | ${LOG_DIR}/isibackup-${OPT_SET}-${STARTDATETIME}.log | main | Name of the log file where all log messages go. ISiBackup is not integrated with syslog, but uses its own logging concept by createing one log file per backup run (and an additional error log file per backup run). | |
| LOG_LEVEL | -q | --quiet | $LOG_ERROR | $LOG_INFO | main, command line | Default log level. The higher it is is set, the less messages go to the log. See the libisi documentation for more information. | |
| MAX_FSFILESIZE | 2048000 | 19999999 | given | Maximum size of one single file on the target file system. | |
| MAX_PATHLEN | 220 | 512 | given | Maximum number of characters in path names on the target file system. | |
| NET | $(hostname -d) | external.dersbach.ch | given | The domain name of the host that this ISiBackup is running on. This can be used as part of the name of the backup directory location. Hence, backup directories can be named depending on the name of the network. | |
| NET_SHORT | $(hostname -d | cut -f 1 -d '.') | external | given | The short domain name of the host that this ISiBackup is running on. This can be used as part of the name of the backup directory location. Hence, backup directories can be named depending on the name of the network. | |
| OPT_ARCHIVE | -a|--archive {directory} | /var/backups/isibackup | /mnt/backups | main, set, command line | The name of the directory where fetched (polled) backups will be stored locally. |
| OPT_COLLECT_DELETE_AFTER | --collect-delete-after | false | true or false | main, set, command line | When a backup has been polled from another host, using the --collect command, will the remotely created backup still be needed? If no, set this to true, and ISiBackup will delete the remote copy. Otherwise, leave it as false. This keeps the backup space occupied on the remote file system, but it allows for an in-place refresh of backups and therefore increases speed considerably when re-creating a full backup. |
| OPT_COPY_DELETE_AFTER | false | true or false | main, set | When a backup has been pushed to another host, using the --copy command, will the locally created backup still be needed? If no, set this to true, and ISiBackup will delete the local copy. Otherwise, leave it as false. This keeps the backup space occupied on the local file system, but it allows for an in-place refresh of backups and therefore increases speed considerably when re-creating a full backup. | |
| OPT_FILESYSTEMS | -f|--other-filesystems | false | true | false | main, set, command line | If set to true, ISiBackup includes files it find on other filesystems if the match the list of inclusion patterns. If set to false, it skips them by using the find -xdev option. |
| OPT_INCLUDE_MODE | mount | fstab | {anything else} | main, set | If set to mount, ISiBackup does not backup the files that match the list of inclusion patterns, but tries to backup everything on every filesystem that has been mounted. If set to fstab, it goes even further and includes even previously known, but unmounted filesystems by trying to mount them. Any other value in this option will render the normal behaviour with the list of inclusion patterns. | ||
| OPT_MODE | -D|--diff | -F|--full | full | diff | command line | ISiBackup mode of operation. Here you give full for a full backup and diff for a differential one. |
| OPT_REMOTE_HOST | -H|--remote-host {Host} | remotehost.domain.com | main, set, command line | The name of the remote host where the backup should be fetched from (poll) or stored to (push). | |
| OPT_REMOTE_METHOD | -r|--remote-method ftp|rsync | rsync | ftp | given, main, set, command line | The method that should be used to fetch (poll) or to store (push) remote backup directories. |
| OPT_REMOTE_PASSWORD | -p|--remote-password | -A|--remote-password-file {file} | blabla | main, set, command line | The password to use when logging into the remote host, and when using passwords is appropriate (currently only for pushing onto an ftp server). The remote password can be read in from a file (use -A {file} instead of -p {password}) | |
| OPT_REMOTE_PATH | -P|--remote-path {directory} | /var/backups/isibackup | /mnt/backups | main, set, command line | The name of the directory where copies (pushed) backups will be stored remotely. |
| OPT_REMOTE_USER | -u|--remote-user | admin | main, set, command line | The user name to login into the remote host given in OPT_REMOTE_HOST. This is used for fetching (poll) and storing (push) of backups. | |
| OPT_RSYNC_ADD_OPTIONS | --rsync-add-options | given, main, set, command line | Additional options that should be included in the rsync command line. May be left empty. | ||
| OPT_RSYNC_OPTIONS | --recursive --times --links --devices --verbose --verbose --checksum --stats --progress --partial | -a | given, main, set | The options that the rsync method should be called with. Preset to all options necessary for conserving permisstions, ownerships and other "true to the original" properties. | |
| OPT_SET | -s|--set {Set} | data_linux | command line | The name of the currently executed backup set, as set with --set {Set} | |
| OPT_SINCE | -i|--since | 2003-12-01 | command line | In case of a differential backup, this is the date to start against (i.e. the backup includes only files created or modified since this date). If left empty, ISiBackup will use the appropriate state file to determine the run of the last full backup. | |
| ISIBACKUP_CONF_PATH | /etc/isibackup | /mnt/backups/conf | The path where ISiBackup gets its main configuration files and the individual set definitions as well as other files it needs. | ||
| PATH_DIFF | /var/backups/isibackup/diff | /mnt/backups/diff | The path where ISiBackup puts the results of the differential backup run. This should include a date identification. | ||
| PATH_FULL | /var/backups/isibackup/full | /mnt/backups/full | main | The path where ISiBackup puts the result of the full backup runs. | |
| PATH_LIB | /usr/lib/libisi | given | Path to the library function ISiBackup uses (see in section "Configuration files and package dependencies"). | ||
| PATH_STATE | /var/backups/isibackup/state | /mnt/backups/state | main | The path where ISiBackup puts the general state information of all backups it has generated. The state files ar shore files mainly containing a backup date, that is later used to determine the date to diff a differential backup to. | |
| PROGRAM_IDENT | isibackup | given | The name if the ISiBackup program | ||
| PROGRAM_VERSION | 1.4.1 | given | The current program version | ||
| STARTDATETIME | 2004-09-17-12-36 | given | The exact start time (to the minute) of the ISiBackup run. Used as part of the log file names. | ||
| TODAY | $(date -I) | 2004-02-17 | given | The date of the backup run, may be used as part of the backup directory name. | |
| TMPDIR | $(dirname $(CMD_TEMPFILE)) | /var/tmp | given | Name of the temporary directory. ISiBackup determines this by executing the tempfile command and then extracting the directory name of the new temporary file (without creating a file). | |