This file is indexed.

/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
}