File: README.html

package info (click to toggle)
backup2l 1.7-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 680 kB
  • sloc: sh: 7,343; makefile: 7
file content (292 lines) | stat: -rw-r--r-- 9,674 bytes parent folder | download
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
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
  <meta charset="utf-8" />
  <meta name="generator" content="pandoc" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
  <title>backup2l: READMEREADME</title>
  <style>
    html {
      line-height: 1.35;
      font-family: Georgia, serif;
      font-size: 18px;
      color: #1a1a1a;
      background-color: #fdfdfd;
    }
    body {
      margin: 0 auto;
      max-width: 42em;
      padding-left: 50px;
      padding-right: 50px;
      padding-top: 50px;
      padding-bottom: 50px;
      hyphens: auto;
      overflow-wrap: break-word;
      text-rendering: optimizeLegibility;
      font-kerning: normal;
    }
    @media (max-width: 720px) {
      body {
        font-size: 0.9em;
        padding: 1em;
      }
      h1 {
        font-size: 1.8em;
      }
    }
    @media print {
      body {
        background-color: transparent;
        color: black;
        font-size: 12pt;
      }
      p, h2, h3 {
        orphans: 3;
        widows: 3;
      }
      h2, h3, h4 {
        page-break-after: avoid;
      }
    }
    p {
      margin: 1em 0;
    }
    a {
      color: #1a1a1a;
    }
    a:visited {
      color: #1a1a1a;
    }
    img {
      max-width: 100%;
    }
    h1, h2, h3, h4, h5, h6 {
      margin-top: 1.4em;
    }
    h5, h6 {
      font-size: 1em;
      font-style: italic;
    }
    h6 {
      font-weight: normal;
    }
    ol, ul {
      padding-left: 1.7em;
      margin-top: 1em;
    }
    li > ol, li > ul {
      margin-top: 0;
    }
    blockquote {
      margin: 1em 0 1em 1.7em;
      padding-left: 1em;
      border-left: 2px solid #e6e6e6;
      color: #606060;
    }
    code {
      font-family: Menlo, Monaco, 'Lucida Console', Consolas, monospace;
      font-size: 75%;
      margin: 0;
    }
    pre {
      margin: 1em 0;
      overflow: auto;
      line-height: 1.15;
    }
    pre code {
      padding: 0;
      overflow: visible;
      overflow-wrap: normal;
    }
    .sourceCode {
     background-color: transparent;
     overflow: visible;
    }
    hr {
      background-color: #1a1a1a;
      border: none;
      height: 1px;
      margin: 1em 0;
    }
    table {
      margin: 1em 0;
      border-collapse: collapse;
      width: 100%;
      overflow-x: auto;
      display: block;
      font-variant-numeric: lining-nums tabular-nums;
    }
    table caption {
      margin-bottom: 0.75em;
    }
    tbody {
      margin-top: 0.5em;
      border-top: 1px solid #1a1a1a;
      border-bottom: 1px solid #1a1a1a;
    }
    th {
      border-top: 1px solid #1a1a1a;
      padding: 0.25em 0.5em 0.25em 0.5em;
    }
    td {
      padding: 0.125em 0.5em 0.25em 0.5em;
    }
    header {
      margin-bottom: 4em;
      text-align: center;
    }
    #TOC li {
      list-style: none;
    }
    #TOC ul {
      padding-left: 1.3em;
    }
    #TOC > ul {
      padding-left: 0;
    }
    #TOC a:not(:hover) {
      text-decoration: none;
    }
    code{white-space: pre-wrap;}
    span.smallcaps{font-variant: small-caps;}
    span.underline{text-decoration: underline;}
    div.column{display: inline-block; vertical-align: top; width: 50%;}
    div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
    ul.task-list{list-style: none;}
    .display.math{display: block; text-align: center; margin: 0.5rem auto;}
  </style>
</head>
<body>
<h1
id="backup2l---a-low-maintenance-backuprestore-tool"><em>backup2l</em> -
A Low-Maintenance Backup/Restore Tool</h1>
<p>by Gundolf Kiefer, 2001-2022</p>
<h2 id="description">Description</h2>
<p><em>backup2l</em> is a lightweight command line tool for generating,
maintaining and restoring backups on a mountable file system (e. g. hard
disk). The main design goals are are low maintenance effort, efficiency,
transparency and robustness. In a default installation, backups are
created autonomously by a cron script.</p>
<p><em>backup2l</em> supports hierarchical differential backups with a
user-specified number of levels and backups per level. With this scheme,
the total number of archives that have to be stored only increases
logarithmically with the number of differential backups since the last
full backup. Hence, small incremental backups can be generated at short
intervals while time- and space-consuming full backups are only sparsely
needed.</p>
<p>The restore function allows to easily restore the state of the file
system or arbitrary directories/files of previous points in time. The
ownership and permission attributes of files and directories are
correctly restored.</p>
<p>An open driver architecture allows to use virtually any archiving
program as a backend. Built-in drivers support .tar.gz, .tar.bz2, or
.afioz files. Further user-defined drivers can be added as described in
the supplied sample configuration file ‘first-time.conf’.</p>
<p>An integrated split-and-collect function allows to comfortably
transfer all or selected archives to a set of CDs or other removable
media.</p>
<p>All control files are stored together with the archives on the backup
device, and their contents are mostly self-explaining. Hence, in the
case of an emergency, a user does not only have to rely on the restore
functionality of <em>backup2l</em>, but can - if necessary - browse the
files and extract archives manually.</p>
<p>For deciding whether a file is new or modified, <em>backup2l</em>
looks at its name, modification time, size, ownership and permissions.
Unlike other backup tools, the i-node is not considered in order to
avoid problems with non-Unix file systems like FAT32.</p>
<h2 id="screenshots">Screenshots</h2>
<p><strong>a) Generating a backup: mail received from cron
daemon</strong></p>
<p>The monitored area covers 26803 (=23733+3053) files and directories
and over 2.2 GB of data. Look at the time stamps!</p>
<pre><code>backup2l v1.6 by Gundolf Kiefer

Wed Nov  6 07:58:00 CET 2019

Mounting /disk2...

Running pre-backup procedure...
  writing dpkg selections to /root/getselections.log...

Removing old backups...

Preparing differential level-3 backup &lt;all.1104&gt; based on &lt;all.1103&gt;...
  657 / 23745 file(s), 94 / 3058 dir(s), 63945 / 2332639 KB (uncompressed)
  skipping: 498 file(s), 14 dir(s), 3144527 KB (uncompressed)

Creating archive...
Checking TOC of tar file (&lt; real file, &gt; archive entry)...
Creating check file for &lt;all.1104&gt;...

Wed Nov  6 07:58:41 CET 2019


Summary
=======

Archive     Date       | Size (KB) | Skipped  Files+Dirs |  New  Obs. | Errors
------------------------------------------------------------------------------
all.1       2019-07-15 |   1475248 |     620       17795 |17795     0 |     45
all.101     2019-07-27 |    235720 |     617       17002 |  812  1605 |      2
all.102     2019-08-19 |    210648 |     626       23446 | 7077   633 |      1
all.103     2019-08-30 |    125396 |     670       23796 | 1963  1613 |      0
all.104     2019-09-07 |    203880 |     669       25597 | 5353  3552 |      1
all.105     2019-09-20 |     87076 |     409       24333 | 2192  3456 |      6
all.106     2019-10-01 |     88492 |     409       27611 | 4591  1313 |      1
all.107     2019-10-12 |     67624 |     409       26589 | 1194  2216 |      0
all.108     2019-10-21 |    111580 |     506       26553 | 1351  1387 |      0
all.1081    2019-10-21 |       948 |     506       26554 |   70    69 |      0
all.1082    2019-10-22 |       164 |     506       26554 |   90    90 |      0
all.1083    2019-10-23 |     46680 |     506       27814 | 1465   205 |      0
all.1084    2019-10-24 |     29672 |     506       28578 | 1111   347 |      0
all.1085    2019-10-25 |     28272 |     506       26869 |  282  1991 |      0
all.1086    2019-10-26 |     45000 |     506       26866 |  314   317 |      0
all.1087    2019-10-27 |     33136 |     506       27162 |  610   314 |      0
all.1088    2019-10-28 |     12280 |     506       27645 |  673   190 |      0
all.11      2019-10-29 |    822056 |     506       27725 |13582  3652 |      8
all.1101    2019-10-30 |     20888 |     506       23707 |  858  4876 |      0
all.1102    2019-10-31 |     11336 |     512       26807 | 3372   272 |      0
all.1103    2019-11-05 |       312 |     512       26786 |  173   194 |      0
all.1104    2019-11-06 |     49592 |     512       26803 |  751   734 |      0

Filesystem            Size  Used Avail Use% Mounted on
/dev/hde1             5.8G  3.5G  2.3G  61% /disk2

Unmounting /disk2...</code></pre>
<p><strong>b) Restoring directory from snapshot into working
directory</strong></p>
<p>Restoring the directory <em>/home/home/gundolf/prog/</em> from
snapshot <em>&lt;all.1102&gt;</em> into the current working
directory:</p>
<pre><code>lilienthal:/scratch# backup2l -t 1102 -r /home/gundolf/prog/
backup2l v1.6 by Gundolf Kiefer

Mounting /disk2...

Active files in &lt;all.1102&gt;: 246
  found in all.1102:     119   (  127 left)
  found in all.1101:       7   (  120 left)
  found in all.11:       120   (    0 left)

Restoring 35 directories...
Restoring files...
  all.11: 120 file(s)
  all.1101: 7 file(s)
  all.1102: 119 file(s)

Unmounting /disk2...
lilienthal:/scratch#</code></pre>
<h2 id="installation-from-main-source-directory">Installation (from main
source directory)</h2>
<ul>
<li>Debian Linux: Type ‘debuild’ to get a binary deb archive.</li>
<li>Others: Run ‘./install-sh’ or ‘sh install-sh’ and follow the
instructions.</li>
</ul>
<h2 id="release-notes">Release Notes</h2>
<ul>
<li>Releases from 1.5 upwards are git-tagged accordingly.</li>
<li>Git repository: https://github.com/gkiefer/backup2l</li>
</ul>
</body>
</html>