/etc/backup2l.conf is in backup2l 1.5-8.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 | ##################################################
# Configuration file for backup2l #
##################################################
# Define the backup2l version for which the configuration file is written.
# This way, future versions can automatically warn if the syntax has changed.
FOR_VERSION=1.5
##################################################
# Volume identification
# This is the prefix for all output files;
# multiple volumes can be handled by using different configuration files
VOLNAME="all"
##################################################
# Source files
# List of directories to make backups of.
# All paths MUST be absolute and start with a '/'!
SRCLIST=(/etc /root /home /var/mail /usr/local)
# The following expression specifies the files not to be archived.
# See the find(1) man page for further info. It is discouraged to
# use anything different from conditions (e. g. actions) as it may have
# unforeseeable side effects.
# This example skips all files and directories with a path name containing
# '.nobackup' and all .o files:
SKIPCOND=(-path "*.nobackup*" -o -name "*.o")
# Some background on 'SKIPCOND': The method of using a find(1) expression to determine
# files to backup or to skip is very powerful. Some of the following examples result from feature
# requests by various users who were not always aware that their "feature" was already implemented. ;-)
#
# If you want to exclude several directories use the following expression:
# SKIPCOND=(-path '/path1' -o -path '/path1/*' -o -path '/path2' -o -path '/path2/*')
#
# If you do not have anything to skip, use:
# SKIPCOND=(-false) # "SKIPCOND=()" does not work
#
# To skip directory trees (for performance reasons) you can add the '-prune' action to your SKIPCOND setting, e.g.:
# SKIPCOND=( -name "unimportant_dir" -prune )
#
# To prevent backup2l from crossing filesystem boundaries you can add '-xdev' to your SKIPCOND setting.
##################################################
# Destination
# Mount point of backup device (optional)
#BACKUP_DEV="/disk2"
# Destination directory for backups;
# it must exist and must not be the top-level of BACKUP_DEV
BACKUP_DIR="/disk2/backup"
##################################################
# Backup parameters
# Number of levels of differential backups (1..9)
MAX_LEVEL=3
# Maximum number of differential backups per level (1..9)
MAX_PER_LEVEL=8
# Maximum number of full backups (1..8)
MAX_FULL=2
# For differential backups: number of generations to keep per level;
# old backups are removed such that at least GENERATIONS * MAX_PER_LEVEL
# recent versions are still available for the respective level
GENERATIONS=1
# If the following variable is 1, a check file is automatically generated
CREATE_CHECK_FILE=1
##################################################
# Pre-/Post-backup functions
# This user-defined bash function is executed before a backup is made
PRE_BACKUP ()
{
echo " pre-backup: nothing to do"
# e. g., shut down some mail/db servers if their files are to be backup'ed
# On a Debian system, the following statements dump a machine-readable list of
# all installed packages to a file.
#echo " writing dpkg selections to /root/dpkg-selections.log..."
#dpkg --get-selections | diff - /root/dpkg-selections.log > /dev/null || dpkg --get-selections > /root/dpkg-selections.log
}
# This user-defined bash function is executed after a backup is made
POST_BACKUP ()
{
# e. g., restart some mail/db server if its files are to be backup'ed
echo " post-backup: nothing to do"
}
##################################################
# Misc.
# Create a backup when invoked without arguments?
AUTORUN=0
# Size units
SIZE_UNITS="" # set to "B", "K", "M" or "G" to obtain unified units in summary list
# Remove this line after the setup is finished.
UNCONFIGURED=1
# Archive driver for new backups (default = "DRIVER_TAR_GZ")
#CREATE_DRIVER="DRIVER_TAR_BZ2"
# Usable built-in drivers for CREATE_DRIVER:
# DRIVER_TAR, DRIVER_TAR_GZ, DRIVER_TAR_BZ2, DRIVER_AFIOZ
##################################################
# User-defined archive drivers (optional)
# This section demonstrates how user-defined archive drivers can be added.
# The example shows a modified version of the "afioz" driver with some additional parameters
# one may want to pass to afio in order to tune the speed, archive size etc. .
# An archive driver consists of a bash function named
# "DRIVER_<your-driver-name>" implementing the (sometimes simple) operations "-test", "-suffix",
# "-create", "-toc", and "-extract".
# If you do not want to write your own archive driver, you can remove the remainder of this file.
# registering custom drivers below for use as CREATE_DRIVER (optional)
#USER_DRIVER_LIST="DRIVER_MY_AFIOZ DRIVER_MY_AFIOBZ2 DRIVER_GZ_SPLIT DRIVER_ZIP"
DRIVER_MY_AFIOZ ()
{
case $1 in
-test)
# This function should check whether all prerequisites are met, especially if all
# required tools are installed. This prevents backup2l to fail in inconvenient
# situations, e. g. during a backup or restore operation. If everything is ok, the
# string "ok" should be returned. Everything else is interpreted as a failure.
require_tools afio
# The function 'require_tools' checks for the existence of all tools passed as
# arguments. If one of the tools is not found by which(1), an error message is
# displayed and the function does not return.
echo "ok"
;;
-suffix)
# This function should return the suffix of backup archive files. If the driver
#ädoes not create a file (e. g. transfers the backup data immediately to a tape
# or network device), an empty string has to be returned. backup2l uses this suffix
# to select a driver for unpacking. If a user-configured driver supports the same
# suffix as a built-in driver, the user driver is preferred (as in this case).
echo "afioz"
;;
-create) # Arguments: $2 = BID, $3 = archive file name, $4 = file list file
# This function is called to create a backup file. The argument $3 is the full file
# name of the archive file including path and suffix. $4 contains an alphabetically
# sorted list of files (full pathname) to be backed up. Directories are not contained,
# they are handled by backup2l directly without using the driver.
# All output to stderr should be directed to stdout ("2>&1").
afio -Zo -G 9 -M 30m -T 2k $3 < $4 2>&1
# This line passes some additional options to afio (see afio(1)):
# '-G 9' maximizes the compression by gzip.
# '-M 30m' increases the size of the internal file buffer. Larger files have to
# be compressed twice.
# '-T 2k' prevents the compression of files smaller than 2k in order to save time.
;;
-toc) # Arguments: $2 = BID, $3 = archive file name
# This function is used to validate the correct generation of an archive file.
# The output is compared to the list file passed to the '-create' function.
# Any difference is reported as an error.
afio -Zt $3 | sed 's#^#/#'
# The sed command adds a leading slash to each entry.
;;
-extract) # Arguments: $2 = BID, $3 = archive file name, $4 = file list file
# This function is called by backup2l's restore procedure for each archive.
# It is extremely important that only those files contained in $4 are restored.
# Otherwise it may happen that files are overwritten by incorrect (e. g. older)
# versions of the same file.
afio -Zinw $4 $3 2>&1
;;
esac
}
##################################################
# More sample archive drivers (optional)
# This is an unordered collection of drivers that may be useful for you,
# either to use them directly or to derive own drivers.
# Here's a version of the standard DRIVER_TAR_GZ driver,
# modified to split the output archive file into multiple sections.
# (donated by Michael Moedt)
DRIVER_TAR_GZ_SPLIT ()
{
case $1 in
-test)
require_tools tar split cat
echo "ok"
;;
-suffix)
echo "tgz_split"
;;
-create) # Arguments: $2 = BID, $3 = archive file name, $4 = file list file
mkdir -p ${3}
tar cz -T $4 --no-recursion | split --bytes=725100100 - ${3}/part_
;;
-toc) # Arguments: $2 = BID, $3 = archive file name
cat ${3}/part_* | tar tz | sed 's#^#/#'
;;
-extract) # Arguments: $2 = BID, $3 = archive file name, $4 = file list file
cat ${3}/part_* | tar xz --same-permission --same-owner -T $4 2>&1
;;
esac
}
# This driver uses afio and bzip2, where bzip2 is invoked by afio.
# (donated by Carl Staelin)
DRIVER_MY_AFIOBZ2 ()
{
case $1 in
-test)
require_tools afio bzip2
echo "ok"
;;
-suffix)
echo "afio-bz2"
;;
-create) # Arguments: $2 = BID, $3 = archive file name, $4 = file list file
afio -z -1 m -P bzip2 -Q -9 -Z -M 50m -T 1k -o $3 <$4 2>&1
# This line passes some additional options to afio (see afio(1)):
# '-P bzip2' utilizes bzip2 as an external compressor
# '-Q 9' maximizes the compression by bzip2.
# '-M 50m' increases the size of the internal file buffer. Larger files have to
# be compressed twice.
# '-T 1k' prevents the compression of files smaller than 1k in order to save time.
;;
-toc) # Arguments: $2 = BID, $3 = archive file name
afio -t -Z -P bzip2 -Q -d - <$3 | sed 's#^#/#'
# The sed command adds a leading slash to each entry.
;;
-extract) # Arguments: $2 = BID, $3 = archive file name, $4 = file list file
afio -Zinw $4 -P bzip2 -Q -d - <$3 2>&1
;;
esac
}
# This driver uses afio and bzip2, such that the I/O stream is piped through bzip2.
# (donated by Carl Staelin)
DRIVER_MY_AFIO_BZ2 ()
{
case $1 in
-test)
require_tools afio bzip2
echo "ok"
;;
-suffix)
echo "afio.bz2"
;;
-create) # Arguments: $2 = BID, $3 = archive file name, $4 = file list file
afio -o - < $4 | bzip2 --best > $3 2>&1
;;
-toc) # Arguments: $2 = BID, $3 = archive file name
bzip2 -d < $3 | afio -t - | sed 's#^#/#'
# The sed command adds a leading slash to each entry.
;;
-extract) # Arguments: $2 = BID, $3 = archive file name, $4 = file list file
bzip2 -d < $3 | afio -inw $4 - 2>&1
;;
esac
}
# This driver uses the Info-ZIP tools to generate zip files. Unfourtunately unzip
# expects all file names to be on the command line. So unless there is a work-
# around it's not possible to use the "-extract" command.
# (donated by Georg Lutz)
DRIVER_ZIP ()
{
case $1 in
-test)
require_tools zip
echo "ok"
;;
-suffix)
echo "zip"
;;
-create) # Arguments: $2 = BID, $3 = archive file name, $4 = file list file
cat $4| zip -qy $3 -@
;;
-toc) # Arguments: $2 = BID, $3 = archive file name
zipinfo -1 $3| sed 's#^#/#'
;;
-extract) # Arguments: $2 = BID, $3 = archive file name, $4 = file list file
echo "Not implemented yet! Sorry."
#unzip $3
;;
esac
}
# This driver uses tar and pipes the output through gnupg. You can specifiy
# the passphrase in a file (/etc/backup2l.pass in the example). You have to
# invoke gpg at least one time before backup because gnupg has to initiate
# first thing in the home directory.
DRIVER_TAR_GPG ()
{
case $1 in
-test)
require_tools tar gpg
echo "ok"
;;
-suffix)
echo "tar.pgp"
;;
-create) # Arguments: $2 = BID, $3 = archive file name, $4 = file list file
tar -c -T $4 --no-recursion | /usr/bin/gpg --batch --no-tty -q --passphrase-fd 3 3</etc/backup2l.pass -c - > $3
;;
-toc) # Arguments: $2 = BID, $3 = archive file name
/usr/bin/gpg --batch --no-tty -q --passphrase-fd 3 3</etc/backup2l.pass -d $3 2>/dev/null | tar t | sed 's#^#/#'
;;
-extract) # Arguments: $2 = BID, $3 = archive file name, $4 = file list file
/usr/bin/gpg --batch --no-tty -q --passphrase-fd 3 3</etc/backup2l.pass -d $3 2>/dev/null | tar -x --same-permission --same-owner -T $4 2>&1
;;
esac
}
|