1 |
#======================================================================== |
2 |
# |
3 |
# ChangeLog - change log for BackupPC. |
4 |
# |
5 |
# DESCRIPTION |
6 |
# Revision history for BackupPC, detailing significant changes between |
7 |
# versions, most recent first. |
8 |
# |
9 |
# AUTHOR |
10 |
# Craig Barratt <cbarratt@users.sourceforge.net> |
11 |
# |
12 |
#======================================================================== |
13 |
# |
14 |
# Version 2.1.0, released 20 Jun 2004. |
15 |
# |
16 |
# See http://backuppc.sourceforge.net. |
17 |
# |
18 |
#======================================================================== |
19 |
|
20 |
#------------------------------------------------------------------------ |
21 |
# Version 2.1.0, 20 Jun 2004 |
22 |
#------------------------------------------------------------------------ |
23 |
|
24 |
* Added Dutch translation from Lieven Bridts, with tweaks from |
25 |
Guus Houtzager. |
26 |
|
27 |
* Added PC-specific config file read in CGI/Archive.pm. Patch |
28 |
from Pete Wenzel. |
29 |
|
30 |
* Added non-zero exit code to BackupPC_zcat when uncompress fails. |
31 |
Patch from Pete Wenzel. |
32 |
|
33 |
* Cosmetic changes to PC Summary and Log file language strings from |
34 |
Pete Wenzel. |
35 |
|
36 |
* BackupPC::Lib tries to be more careful when renaming the backups |
37 |
file to backups.old. There have been reports of backups being |
38 |
empty, perhaps when the BackupPC data file system fills up. |
39 |
Now backups is not renamed to backups.old if backups is empty. |
40 |
|
41 |
* BackupPC now closes stderr and stdout before renaming and |
42 |
re-opening the log file. |
43 |
|
44 |
* Pre/post backup/restore/archive commands now correctly set |
45 |
"type" to either incr/full/restore/archive, and now cmdType |
46 |
is the type of Pre/post backup/restore/archive command. |
47 |
|
48 |
* BackupPC_archive correctly terminates archive processes on |
49 |
alarm or cancel. |
50 |
|
51 |
* Updates to BackupPC_stnd.css with absolute font sizes instead |
52 |
of relative. |
53 |
|
54 |
* BackupPC_dump now makes sure that the $Conf{FullAgeMax} check |
55 |
also ensures the full backup is older than the maximum age |
56 |
expected from $Conf{FullPeriod}. |
57 |
|
58 |
#------------------------------------------------------------------------ |
59 |
# Version 2.1.0beta2pl1, 30 May 2004 |
60 |
#------------------------------------------------------------------------ |
61 |
|
62 |
* Fixed bug in rsync checksum caching code in BackupPC::Xfer::RsyncDigest. |
63 |
|
64 |
* BackupPC_zipCreate now ensures the earliest mtime is 1/1/1980, |
65 |
since zip file formats don't support earlier dates. Reported |
66 |
by Dan Niles. |
67 |
|
68 |
* CGI restore via zip and tar now makes sure stderr is ignored |
69 |
when BackupPC_tarCreate and BackupPC_zipCreate are run. |
70 |
Previously any stderr output would get mixed in the archive, |
71 |
corrupting it. Reported by Dan Niles. |
72 |
|
73 |
#------------------------------------------------------------------------ |
74 |
# Version 2.1.0beta2, 23 May 2004 |
75 |
#------------------------------------------------------------------------ |
76 |
|
77 |
* $Conf{BackupFilesOnly} and $Conf{BackupFilesExclude} now apply |
78 |
to every share, rather than just the first, in the case where |
79 |
they are arrays and there are multiple shares. Suggested |
80 |
by Andy Evans. |
81 |
|
82 |
* On the phase 2 retry pass with rsync, verify the cached checksums |
83 |
if checksum caching is turned on. This will catch the case of |
84 |
cached checksums being incorrectly appended to the compressed |
85 |
pool file. Added new config parameter $Conf{RsyncCsumCacheVerifyProb} |
86 |
so that cached checksums are verified with a selectable probability. |
87 |
Also, increased File::RsyncP version number to 0.51. |
88 |
|
89 |
* configure.pl now supports an optional batch mode. Command-line |
90 |
options are used to specify all the information that configure.pl |
91 |
needs. This is useful for building auto-install packages. |
92 |
Also, configure.pl now includes pod documentation, so you can do |
93 |
"perldoc configure.pl" to see all the command-line options. |
94 |
Suggested, tested and tweaked by Stuart Herbert for possible |
95 |
Gentoo inclusion. |
96 |
|
97 |
* At each wakeup, clients are now queued based on how old the most |
98 |
recent backup is. Clients with errors are queued first, with |
99 |
the oldest error times going first. The rest of the clients are |
100 |
queued next, with the clients with the oldest backup going first. |
101 |
Previously the clients were simply queued in alphabetic order. |
102 |
Suggested by Mike Trisko and Tony Nelson. |
103 |
|
104 |
* Added config parameter $Conf{PartialAgeMax} that controls whether |
105 |
partials are saved at all, and if so, whether the partial will be |
106 |
ignored at the next full backup if it is too old. |
107 |
|
108 |
* BackupPC_tarExtract now allows empty archives without reporting |
109 |
an error. Reported by Don Silvia. |
110 |
|
111 |
* Removed Browse Backups link from Nav Bar in Archive Info display. |
112 |
Reported by Ralph Paßgang. |
113 |
|
114 |
* Fixed documentation display for regular users. Reported by Ralph Paßgang. |
115 |
|
116 |
* Status and PC Summary now work for regular users and only show |
117 |
that user's hosts. Server general status information only appears |
118 |
for admins. Suggested by Ralph Paßgang. |
119 |
|
120 |
* Moved the last three navigation-bar links (docs, FAQ and SF) to |
121 |
a new config parameter $Conf{CgiNavBarLinks}. This allows |
122 |
these links to be locally configured. Based on a patch |
123 |
submitted by Ralph Paßgang. |
124 |
|
125 |
* Allow the navigation bar search box to be disabled by |
126 |
setting $Conf{CgiSearchBoxEnable} to 0. Based on a patch |
127 |
submitted by Ralph Paßgang. |
128 |
|
129 |
* Updates to de.pm from Ralph Paßgang. |
130 |
|
131 |
* Made the BackupPC icon a link to the SF BackupPC project page. |
132 |
|
133 |
#------------------------------------------------------------------------ |
134 |
# Version 2.1.0beta1, 4 Apr 2004 |
135 |
#------------------------------------------------------------------------ |
136 |
|
137 |
* The CSS definition has been removed from the config.pl file and |
138 |
is now a separate file, BackupPC_stnd.css. A new config variable, |
139 |
$Conf{CgiCSSFile}, gives the name of the CSS file to use. |
140 |
Suggested by Ender Mathias. |
141 |
|
142 |
* Fixed the filling of the host name select box for admins. |
143 |
The default $Conf{CgiNavBarAdminAllHosts} is now 1. |
144 |
Reported by Doug Lytle. |
145 |
|
146 |
* Cleaned up warning message for restore using rsync when checksum |
147 |
caching is on, but when file didn't have cached checksums. |
148 |
|
149 |
* Fixed BackupPC_archiveHost to support par2 (par2cmdline). |
150 |
Patch submitted by Jaco Bongers and adapted by Josh Marshall. |
151 |
|
152 |
* Improved stat() usage in BackupPC_nightly, plus some other cleanup, |
153 |
giving a significant performance improvement. Patch submitted by |
154 |
Wayne Scott. |
155 |
|
156 |
* Allow several BackupPC_nightly processes to run in parallel based |
157 |
on new $Conf{BackupPCNightlyJobs} setting. This speeds up the |
158 |
traversal of the pool, reducing the overall run time for |
159 |
BackupPC_nightly. |
160 |
|
161 |
* Allow BackupPC_nightly to split the pool traversal across several |
162 |
nightly runs. This improves the running time per night, at the expense |
163 |
of a slight increase in disk storage as unused pool files might not |
164 |
be deleted for a couple of days. Controller by new config setting |
165 |
$Conf{BackupPCNightlyPeriod}. |
166 |
|
167 |
#------------------------------------------------------------------------ |
168 |
# Version 2.1.0beta0, 20 Mar 2004 |
169 |
#------------------------------------------------------------------------ |
170 |
|
171 |
* A failed full dump is now saved as a partial (incomplete) dump, |
172 |
provided it includes some files. This can be used for browsing, |
173 |
restoring etc, and will also form the basis of resuming full |
174 |
dumps. Only one partial is kept, and it is removed as soon |
175 |
as a successful full (or a new partial) is done. |
176 |
|
177 |
* Added support for resuming a full dump for rsync. The partial |
178 |
full is kept, and to resume an incremental is done against the |
179 |
partial, and a full is done for the rest. |
180 |
|
181 |
* Added support for Rsync checksum caching. Rsync checksum are |
182 |
appended to the compressed pool files. This means that block |
183 |
and file checksums do not need to be recomputed on the server |
184 |
when using rsync. Requires a patch to rsync to support fixed |
185 |
checksum seeds. This patch is included in the cygwin-rsyncd |
186 |
release on http://backuppc.sourceforge.net. |
187 |
|
188 |
* Major addition of Archive feature from Josh Marshall. Special |
189 |
clients can be configured to be archive targets (eg: tape drives, |
190 |
CD-R). Any subset of the backup clients can be selected and tar |
191 |
archives are created, optionally compressed and split and written |
192 |
to the output device. Logs are maintained and are browsable. |
193 |
|
194 |
* Major changes from Ryan Kucera to add style sheets to the CGI |
195 |
interface, allowing easy customization. Added new icons and |
196 |
BackupPC logo. Numerous navigation improvements. |
197 |
|
198 |
* Added directory history display to BackupPC_Admin, allowing the |
199 |
user to quickly see which files changed between backups on a |
200 |
per-directory basis. |
201 |
|
202 |
* Added exponential expiry option for full dumps. This allows you |
203 |
to specify |
204 |
|
205 |
- how many fulls to keep at intervals of $Conf{FullPeriod}, followed by |
206 |
- how many fulls to keep at intervals of 2 * $Conf{FullPeriod}, |
207 |
- how many fulls to keep at intervals of 4 * $Conf{FullPeriod}, |
208 |
- how many fulls to keep at intervals of 8 * $Conf{FullPeriod}, |
209 |
- how many fulls to keep at intervals of 16 * $Conf{FullPeriod}, |
210 |
|
211 |
and so on. This allows you, for example, to keep 4 weekly fulls, |
212 |
followed by 6 fulls every 4 weeks (approx 1 month) and 2 fulls at |
213 |
16 weeks, for roughly 1 year of history. This works by deleting |
214 |
every other full as each expiry boundary is crossed. Suggested |
215 |
by David Cramblett. |
216 |
|
217 |
* Added Italian language translation it.pm from Lorenzo Cappelletti. |
218 |
|
219 |
* Major updates to language files for new features and tags changes. |
220 |
Updated makeDist to do pedantic consistency checking of language |
221 |
files. |
222 |
|
223 |
* Addition of administration options from Paul Lukins. Initial |
224 |
page allows server to be started/stopped/reloaded. This still |
225 |
needs some i18n work. Currently the server start/stop is |
226 |
commented out. |
227 |
|
228 |
* Split BackupPC_Admin into a set of modules, one for each major action. |
229 |
Each action is now a seperate module in lib/BackupPC/CGI. |
230 |
|
231 |
* Allow the blackout period begin/end to span midnight. Adapted |
232 |
from patch submitted by David Smith. |
233 |
|
234 |
* Allow multiple blackout periods, with new config variable |
235 |
$Conf{BlackoutPeriods} that replaces the old variables |
236 |
$Conf{BlackoutHourBegin}, $Conf{BlackoutHourEnd}, and |
237 |
$Conf{BlackoutWeekDays}. Based on patch submitted by |
238 |
Lorenzo Cappelletti. |
239 |
|
240 |
* Disabled alarms after forks to avoid timeouts in children that |
241 |
do not reset their alarm. Prompted by ideas from James Leu. |
242 |
|
243 |
* Added options for block size, buffer size and share wild-card to |
244 |
BackupPC_tarCreate. Also added negative backup number options |
245 |
that are relative to the last (so -1 is the last), suggested by |
246 |
William McKee and Carl Soderstrom. |
247 |
|
248 |
* The "Wrong user" message in BackupPC::Lib now goes to stderr, so that |
249 |
the user is more likely to see the error with BackupPC_tarCreate. |
250 |
Reported by Paul Fox. |
251 |
|
252 |
* Add creation of per-PC directory in BackupPC/CGI/Restore.pm in |
253 |
case it doesn't already exist. |
254 |
|
255 |
* Added -q -x to all ssh commands in conf/config.pl. Suggested by |
256 |
SI Reasoning and Niranjan Ghate. |
257 |
|
258 |
* Changed restore code so that option #1 (direct restore) can be |
259 |
disabled if the restore command is undefined. Disabling direct |
260 |
restore is necessary if the share is read-only. Suggested by |
261 |
Rich B from SAIC. |
262 |
|
263 |
* Changed regexp in lib/BackupPC/Smb.pm to allow numbers with both |
264 |
a decimal point or comma for international versions of Samba. |
265 |
Patch submitted by Frank Gard. |
266 |
|
267 |
* Browsing and directory history now sort the files in a |
268 |
case-insensitive manner. |
269 |
|
270 |
* Changed exec() syntax to allow executing commands whose path |
271 |
contains spaces. |
272 |
|
273 |
* BackupPC_dump no longer removes backups if $Conf{FullKeepCnt} |
274 |
is zero or undefined. The protects the existing backups in the |
275 |
case of a bad config.pl file. Suggested by Christian Warden. |
276 |
|
277 |
* Swapped the Server and Hosts sections on the Nav bar. Moved the |
278 |
host search text box to the top of the hosts section. This was |
279 |
done to move the variable-length part of the Nav bar (when all |
280 |
hosts are displayed) to the bottom. |
281 |
|
282 |
* Fixed a bug in tar restore related to how the common prefix path is |
283 |
removed. Now ensure that the common path is at a directory boundary. |
284 |
Reported by Patrick Neuner. |
285 |
|
286 |
* Added --chuid ${USER} to init.d/src/gentoo-backuppc. Suggested by |
287 |
SI Reasoning, Pascal Pochol, Michael Evanoff and others. |
288 |
|
289 |
* Added Suse notes to init.d/README from Bruno Vernay. |
290 |
|
291 |
* Added Apache 2 documentation fix from Michael Tuzi. |
292 |
|
293 |
#------------------------------------------------------------------------ |
294 |
# Version 2.0.2, 6 Oct 2003 |
295 |
#------------------------------------------------------------------------ |
296 |
|
297 |
* Fixed stupid last-minute change in octal size conversion in |
298 |
Backup_tarExtract. |
299 |
|
300 |
#----------------------------------------------------------------------- |
301 |
# Version 2.0.1, 5 Oct 2003 |
302 |
#------------------------------------------------------------------------ |
303 |
|
304 |
* Fixed handling of >= 8GB files in BackupPC_tarExtract and >= 4GB |
305 |
files in BackupPC_tarCreate. |
306 |
|
307 |
* Removed smbclient size repair in BackupPC_tarExtract for files |
308 |
between 2GB and 4GB. This means that BackupPC_tarExtract 2.0.1 |
309 |
doesn't behave the same as 2.0.0 for file sizes between 2GB and 4GB |
310 |
extacted using smbclient 2.2.x. If you have problems backing up |
311 |
files whose size is between 2GB and 4GB using smbclient 2.2.x |
312 |
you should upgrade smbclient to 3.0, since it now generates |
313 |
correct file sizes. |
314 |
|
315 |
* Replace PingClientPath with PingPath in configure.pl. |
316 |
|
317 |
* Removed -T (taint mode) on binaries installed in configure.pl. |
318 |
|
319 |
* Added support for smbclient from samba version 3.0.0. |
320 |
|
321 |
* Fixed $Conf{HardLinkMax} limit check in BackupPC::Lib; reported |
322 |
by Ross Skaliotis. |
323 |
|
324 |
* In BackupPC_Admin, default REMOTE_USER to $Conf{BackupPCUser} |
325 |
if it is not defined. This allows the CGI interface to work |
326 |
when AdminUsers = '*'. Reported by Quentin Arce. |
327 |
|
328 |
* For SMB, code that detected files with a read-locked region (eg: |
329 |
outlook .pst files), removed them and then tried to link with an |
330 |
earlier version was broken. This code missed a step of mangling |
331 |
the file names. This is now fixed. Reported by Pierre Bourgin. |
332 |
|
333 |
* A backup of a share that has zero files is now considered |
334 |
fatal. This is used to catch miscellaneous Xfer errors that |
335 |
result in no files being backed up. A new config parameter |
336 |
$Conf{BackupZeroFilesIsFatal} (defaults to 1) and can be set to |
337 |
zero to turn off this check. Suggested by Guillaume Filion. |
338 |
Additional change: this check only applies to a full dump. |
339 |
|
340 |
* SMB: now detect NT_STATUS_ACCESS_DENIED on entire share or BackupFilesOnly |
341 |
(also ERRDOS - ERRnoaccess (Access denied.) for older versions of |
342 |
smbclient.) Suggested by Guillaume Filion. |
343 |
|
344 |
* SMB: now detects "tree connect failed: NT_STATUS_BAD_NETWORK_NAME" and |
345 |
the dump is considered failed. |
346 |
|
347 |
* Rsync: Previously BackupFilesOnly = '/' did --include '/' --exclude '/*', |
348 |
which just included the '/' directory and nothing below. Now it |
349 |
does just --include '/', which should include everything. |
350 |
Reported by denon. |
351 |
|
352 |
* Add hostError to DumpPostUserCmd variable substitutions for both dump |
353 |
and restore. |
354 |
|
355 |
* Verbose output in Lib.pm goes to STDERR, not STDOUT. This now |
356 |
makes BackupPC_dump -v work better. |
357 |
|
358 |
* Don't allow browsing with ".." in directory in case a user tries |
359 |
to trick BackupPC_Admin into displaying directories outside where |
360 |
they are allowed. |
361 |
|
362 |
* Required File::RsyncP version is now 0.44, since File::RsyncP 0.44 |
363 |
fixes large file (>2GB) bugs. Large file bugs reported by Steve |
364 |
Waltner. |
365 |
|
366 |
#------------------------------------------------------------------------ |
367 |
# Version 2.0.0, 14 Jun 2003 |
368 |
#------------------------------------------------------------------------ |
369 |
|
370 |
* Minor tweaks to disable utf8 on utf8-capable machines (eg: RH8+). |
371 |
Added "no utf8" to all programs, and added binmode() to relevant |
372 |
file handles. |
373 |
|
374 |
#------------------------------------------------------------------------ |
375 |
# Version 2.0.0beta3, 1 Jun 2003 |
376 |
#------------------------------------------------------------------------ |
377 |
|
378 |
* Several improvements to restore: cancel now reports the correct |
379 |
message and cleans up correctly. |
380 |
|
381 |
* Rsync with whitespace and wildcard excludes fixed by replacing |
382 |
argList with argList+ in config.pl plus a fix to Lib.pm for |
383 |
shell escaping array arguments. |
384 |
|
385 |
* Fixed rsync restore for character and block special devices |
386 |
(major and minor device numbers weren't correctly restored). |
387 |
|
388 |
* Fixed typo in bin/BackupPC_restore (XferLOG -> RestoreLOG). |
389 |
|
390 |
* (Re)-fixed "Bad command" in log file when restore via tar or zip |
391 |
file download is done. |
392 |
|
393 |
* Added untaint to exec in Lib.pm to avoid tainted errors. |
394 |
|
395 |
* Applied additional tweak to hilight patch from Tim Demarest. |
396 |
|
397 |
* $Conf{CgiAdminUsers} = '*' now allows privileged even with REMOTE_USER |
398 |
not set. |
399 |
|
400 |
* Don't display RsyncdPasswd when displaying config.pl files. |
401 |
|
402 |
* Replace pipe with socketpair in bin/BackupPC_dump and bin/BackupPC_restore, |
403 |
which increases typical buffering from 4K to 16K-64K. This improves the |
404 |
performance. |
405 |
|
406 |
* Add check on $ENV{LANG} setting do configure.pl: if LANG includes utf |
407 |
then a warning is printed. |
408 |
|
409 |
#------------------------------------------------------------------------ |
410 |
# Version 2.0.0beta2, 11 May 2003 |
411 |
#------------------------------------------------------------------------ |
412 |
|
413 |
* Added German translation, provided by Manfred Herrmann. |
414 |
|
415 |
* Fixed large-file problem with rsync, reported by Manfred Herrmann. |
416 |
|
417 |
* Fixed zip and tar file download from CGI under mod_perl. Reported |
418 |
by Pierre Bourgin and Paul Lukins. |
419 |
|
420 |
* Fixed directory browsing and top-level directory browsing in 2.0.0beta0. |
421 |
Reported by several users. |
422 |
|
423 |
* Added -v option to BackupPC_dump for verbose output (useful when |
424 |
you run the command manually). Added messages for all exits. |
425 |
|
426 |
* If nmblookup returns multiple IP addresses, NetBiosHostIPFind() |
427 |
now returns the first IP address that matches the subnet mask. |
428 |
Suggested by Tim Demarest. |
429 |
|
430 |
* Fixed BackupPC::View so the top-level directory is handled correctly. |
431 |
This allows the top-level share/directory to be restored via the |
432 |
CGI interface. Reported by several users. |
433 |
|
434 |
* Fixed RsyncFileIO failures on certain large files by replacing seek() |
435 |
with sysseek(). Reported by Manfred Herrmann. |
436 |
|
437 |
* Added configurable highlighting of PC status in the CGI summary |
438 |
screen; submitted by Tim Demarest. |
439 |
|
440 |
* Fixed command queue CGI display; submitted by Tim Demarest. |
441 |
|
442 |
* BackupPC_trashClean now logs an error if it can't remove all the |
443 |
trash and then goes back to sleep, rather than continually trying. |
444 |
|
445 |
* Moved correct user (uid) check into BackupPC::Lib so that all |
446 |
applications do a user check if $Cong{BackupPCUserVerify} is |
447 |
set. The avoids the risk of manually running BackupPC_dump as |
448 |
the wrong user. |
449 |
|
450 |
* Loss of blackout now applies to "host not found" as well as no ping. |
451 |
Reported by Dale Renton. |
452 |
|
453 |
* "Host not found" is now treated in a similar manner to "no ping". |
454 |
|
455 |
* Added suse-linux init.d script from Leon Letto. |
456 |
|
457 |
* Added Gentoo linux init.d script from Tim Demarest. |
458 |
|
459 |
* Applied additional i18n strings from GFK and the translation team. |
460 |
|
461 |
* Fixed option parsing so that getopts errors are reported and we exit. |
462 |
|
463 |
* Changed reporting of Xfer PIDs so that rsync cancel works correctly. |
464 |
|
465 |
#------------------------------------------------------------------------ |
466 |
# Version 2.0.0beta1, 30 Mar 2003 |
467 |
#------------------------------------------------------------------------ |
468 |
|
469 |
* Added Spanish translation es.pm from Javier Gonzalez. |
470 |
|
471 |
* Fixed CGI browse navigation bug that causes BackupPC_Admin to wedge |
472 |
when directories were selected in a certain order. |
473 |
|
474 |
* Fixed BackupPC::PoolWrite so that it can recover when the initial |
475 |
file size is wrong. This is needed since rsync could write a file |
476 |
whose size is different from the initial size returned in the |
477 |
file list when that file is updated while rsync is running. |
478 |
|
479 |
* Added binmode(STDIN) to BackupPC_tarExtract, suggested by Pat LoPresti |
480 |
to fix a problem a RedHat8 with perl 5.8.0. It's unclear why this |
481 |
helps, but it should be benign. See: |
482 |
http://sourceforge.net/mailarchive/forum.php?thread_id=1853018&forum_id=503 |
483 |
|
484 |
#------------------------------------------------------------------------ |
485 |
# Version 2.0.0beta0, 23 Feb 2003 |
486 |
#------------------------------------------------------------------------ |
487 |
|
488 |
* Support for rsync and rsyncd backup and restore. Changes to |
489 |
BackupPC_dump, BackupPC_restore, and new modules BackupPC::Xfer::Rsync |
490 |
and BackupPC::Xfer::RsyncFileIO. |
491 |
|
492 |
* Added internationalization (i18n) code from Xavier Nicollet, |
493 |
with additions from Guillaume Filion. Voila! BackupPC_Admin |
494 |
now supports English and French, and adding more languages is |
495 |
now easy. New config paramater $Conf{Language} sets the language. |
496 |
|
497 |
* Added optional user-defined pre/post dump/restore commands, allowing |
498 |
things like database shutdown/startup for dumps. |
499 |
|
500 |
* Changed the way hosts are found. |
501 |
|
502 |
* Added $Conf{ClientNameAlias}, which allows the name of the physical |
503 |
client machine to be set. This allows several different backup |
504 |
"hosts" to all refer to the same physical machine, which is |
505 |
convenient if several different types of data need to be backed |
506 |
up, or if different parameters are needed for different parts of |
507 |
the host. |
508 |
|
509 |
* Replaced $Conf{PingArgs} with $Conf{PingCmd}, added $Conf{DfCmd}, |
510 |
$Conf{NmbLookupCmd} allowing all these commands to be fully |
511 |
configured. Also, all commands can also now be fragments of |
512 |
perl code. |
513 |
|
514 |
* Moved all smbclient commands into the config.pl file so the specific |
515 |
arguments can be customized. New config parameters are |
516 |
$Conf{SmbClientFullCmd}, $Conf{SmbClientIncrCmd} and |
517 |
$Conf{SmbClientRestoreCmd}. |
518 |
|
519 |
* Added new BackupPC::View module that creates views of backups |
520 |
(handling merging etc). Updated BackupPC_Admin, BackupPC_zipCreate |
521 |
and BackupPC_tarCreate to use BackupPC::View. This removes lots |
522 |
of merging and mangling code from the higher-level code. |
523 |
|
524 |
* Added code from Toby Johnson that allows additional users to be |
525 |
specified in the hosts file; these users can also view/start/stop |
526 |
and restore backups for that host. Also added a new config |
527 |
setting $Conf{CgiNavBarAdminAllHosts} that allows all hosts to |
528 |
be listed in the left nav bar for admins. |
529 |
|
530 |
* Added $Conf{HardLinkMax} (default 31999) which sets the limit on |
531 |
the maximum number of hardlinks per file in the pool. If a file |
532 |
ever gets to this number of links a new pool file is created to |
533 |
handle additional links. |
534 |
|
535 |
* Added $Conf{PerlModuleLoad}, which allows optional additional perl |
536 |
modules to be loaded. |
537 |
|
538 |
* Added $Conf{EMailUserDestDomain} and other EMail config settings to |
539 |
allow language-specific default messages to be overridden. |
540 |
|
541 |
* Added BPC_FTYPE_DELETED to lib/BackupPC/Attrib.pm, allowing deleted |
542 |
files to be represented in the attrib file correctly. |
543 |
|
544 |
* Added support for environment variable BPC_SMB_PASSWD, which is the |
545 |
client's smb password. This overrides the old environment variable |
546 |
PASSWD. |
547 |
|
548 |
* Added taint cleanup for perl5.8 to lib/BackupPC/Lib.pm. |
549 |
|
550 |
* Changed $tar_unpack_header format in BackupPC_tarExtract to correctly |
551 |
handle files with trailing spaces. |
552 |
|
553 |
* Added catching of SIG_PIPE to BackupPC_dump, and changed catch_signal |
554 |
to ignore multiple signals of the same type. |
555 |
|
556 |
* Added reporting of the largest number of hardlinks in the pool to the |
557 |
log file. |
558 |
|
559 |
* Adding reporting of syntax errors in the per-PC config.pl file. |
560 |
|
561 |
* Updated BackupPC_sendEmail to handle language-specific email messages. |
562 |
|
563 |
* Allow client (host) names to contain spaces. Spaces in host names |
564 |
need to be escaped via "\" in the hosts file. The user of spaces in |
565 |
host names is discouraged, but they should work. One feature that |
566 |
doesn't work with host names that contain spaces is the highlighting |
567 |
of that name in the log file display in the CGI interface. There are |
568 |
no plans to fix this. |
569 |
|
570 |
* Renamed $Conf{SmbClientTimeout} to $Conf{ClientTimeout}. |
571 |
|
572 |
* Fixed all open() calls to use 3 argument form to fix handling of file |
573 |
names with trailing whitespace. Also fixed CGI interface so these |
574 |
file names are displayed correctly. |
575 |
|
576 |
* Fixed new 2.0.0 CGI navigation bug that causes the top-level directory |
577 |
to have a URL "&share=//boot&dir=" instead of "&share=/boot&dir=/". |
578 |
Reported by Pascal Schelcher. Fixed similar problem reported by |
579 |
Doug Lytle. |
580 |
|
581 |
* Added "PerlTaintCheck On" to the mod_perl section in the docs, |
582 |
suggested by Tim Demarest. |
583 |
|
584 |
#------------------------------------------------------------------------ |
585 |
# Version 1.5.0, 2 Aug 2002 |
586 |
#------------------------------------------------------------------------ |
587 |
|
588 |
* Changed conf/config.pl so that $Conf{TarIncrArgs} uses the --newer |
589 |
option instead of --newer-mtime. Also removed --atime-preserve from |
590 |
$Conf{TarClientCmd}. This makes the default settings work better |
591 |
with tripwire. |
592 |
|
593 |
* Fixed configure.pl so it correctly detects a running BackupPC <= v1.4.0 |
594 |
so it can correctly warn the user to stop it before upgrading. Reported |
595 |
by David Holland. |
596 |
|
597 |
* Added missing ";" to entity escape in EscapeHTML in BackupPC_Admin. |
598 |
Reported by Guillaume Filion. |
599 |
|
600 |
* Added LDAP setup to documentation from David Holland. |
601 |
|
602 |
* Tar.pm now adds a "." to file paths that start with "/", so that all |
603 |
tar paths are relative. From Ludovic Drolez. |
604 |
|
605 |
#------------------------------------------------------------------------ |
606 |
# Version 1.5.0beta0, 30 Jun 2002 |
607 |
#------------------------------------------------------------------------ |
608 |
|
609 |
* A full set of restore options is now supported, including direct |
610 |
restore via smbclient or tar or downloading a zip or tar file. |
611 |
|
612 |
* Major additions to CGI script to support better directory navigation, |
613 |
restore features and mod_perl. Also, file downloads from the CGI |
614 |
interface now correctly preserve the file name and provide the |
615 |
correct Content-Type for the most common types of files. Improved |
616 |
directory navigation was contributed by Ryan Kucera. |
617 |
|
618 |
* New script BackupPC_zipCreate (contributed by Guillaume Filion) is the |
619 |
zip analog of BackupPC_tarCreate. BackupPC_zipCreate can be used to |
620 |
create a zip archive of any portion of a backup. |
621 |
|
622 |
* Substantial additions to BackupPC_tarCreate to support restore, |
623 |
including modifying path names, handling hardlinks, fixing |
624 |
support of old backups without attributes (pre-v1.4.0). Plus |
625 |
BackupPC_tarCreate is now an offical part of the release. |
626 |
(Lack of support for hardlinks was reported by John Stanley.) |
627 |
|
628 |
* BackupPC_tarExtract now supports hardlinks and fixed pooling of |
629 |
attribute files. |
630 |
|
631 |
* A unix domain socket is now used for communication between the CGI |
632 |
interface and BackupPC. The original TCP socket is optional. Sockets |
633 |
are correctly re-initialized if config.pl is updated with new socket |
634 |
settings. |
635 |
|
636 |
* For improved security messages over the unix or TCP socket are protected |
637 |
via an MD5 digest based on a shared secret, a sequence number, a time |
638 |
stamp and a unique per-connection number. |
639 |
|
640 |
* Additions to configure.pl to support install of directory navigation |
641 |
images. |
642 |
|
643 |
* Fixed case where $Conf{BackupFilesOnly} or $Conf{BackupFilesExclude} |
644 |
were set to a single string or list (in v1.4.0 only the case of |
645 |
hash worked correctly). Reported by Phillip Bertolus. |
646 |
|
647 |
* Fixed case of $Conf{BackoutGoodCnt} == 0. This setting now makes the |
648 |
client always subject to blackout, matching the comments in config.pl. |
649 |
Also fixed handling of $Conf{BackoutGoodCnt} < 0 in the CGI script |
650 |
reported by Pascal Schelcher. |
651 |
|
652 |
* Fixed byte and file totals for tar backups, reported by several users. |
653 |
|
654 |
* Fixed --newer-mtime date/timestamp format to make it ISO 8601 compliant, |
655 |
suggested by Erminio Baranzini. |
656 |
|
657 |
* Fixed handling of $Conf{BackupFilesOnly} in BackupPC::Xfer::Tar.pm, as |
658 |
well as shell escaping of tar arguments. |
659 |
|
660 |
* Fixed entity encoding of 8-bit characters in the CGI interface. |
661 |
|
662 |
* Added optional CGI headers in $Conf{CgiHeaders} that by default |
663 |
is set to a no-cache pragma. Suggested by Benno Zuure. |
664 |
|
665 |
#------------------------------------------------------------------------ |
666 |
# Version 1.4.0, 16 Mar 2002 |
667 |
#------------------------------------------------------------------------ |
668 |
|
669 |
* BackupPC now supports tar (in addition to smb) for extracting host |
670 |
data. This is the most convenient option for linux/unix hosts. |
671 |
Tar can be configured to run over ssh, rsh or to backup a local |
672 |
nfs mount from the host. |
673 |
|
674 |
* Support for special files, including symbolic links, fifo, character |
675 |
and block device files has been added, so that all native linux/unix |
676 |
file types can be correctly backed up when using tar transport. |
677 |
Special files are all stored as regular files and the type attributes |
678 |
are used to remember the original file type. |
679 |
|
680 |
* All unix file attributes are now saved (and pooled when possible). |
681 |
This includes user and group ownership, permissions, and modification |
682 |
time. Smbclient also does a reasonable job of emulating unix |
683 |
permissions (such as mtime), and these attributes get saved too. |
684 |
|
685 |
* The new default is to not fill incremental dumps. configure.pl |
686 |
automatically sets $Conf{IncrFill} to 0. The default was 1 |
687 |
(incrementals were filled with hardlinks). Since the CGI |
688 |
script does filling at browsing time, there is no need to |
689 |
fill incremental dumps. |
690 |
|
691 |
* Backup file names are now stored in "mangled" form. Each node of a |
692 |
path is preceded by "f", and special characters (\n, \r, % and /) are |
693 |
URI-encoded as "%xx", where xx is the ascii character's hex value. So |
694 |
c:/craig/example.txt is now stored as fc/fcraig/fexample.txt. This |
695 |
was done mainly so meta-data could be stored alongside the backup |
696 |
files without name collisions. In particular, the attributes for the |
697 |
files in a directory are stored in a file called "attrib", and |
698 |
mangling avoids file name collisions (I discarded the idea of having |
699 |
a duplicate directory tree for every backup just to store the |
700 |
attributes). Other meta-data (eg: rsync checksums) could be stored in |
701 |
file names preceded by, eg, "c". There are two other benefits to |
702 |
mangling: the share name might contain "/" (eg: "/home/craig" for tar |
703 |
transport), and I wanted that represented as a single level in the |
704 |
storage tree. Secondly, as files are written to NewFileList for later |
705 |
processing by BackupPC_link, embedded newlines in the file's path |
706 |
will cause problems which are avoided by mangling. |
707 |
|
708 |
The CGI script undoes the mangling, so it is invisibe to the user. |
709 |
Of course, old (unmangled) backups are still supported by the CGI |
710 |
interface. |
711 |
|
712 |
* Various changes to the CGI interface, BackupPC_Admin: |
713 |
|
714 |
+ Added button that allows users to manually start a full dump in |
715 |
addition to the existing incremental dump. |
716 |
|
717 |
+ Added display of file attributes when browsing backups. |
718 |
|
719 |
+ Added an optional holdoff time specified by the user when canceling |
720 |
a backup. BackupPC will not attempt any new backups for at least the |
721 |
specified time. This holdoff time can be changed whether or not a |
722 |
backup is running. |
723 |
|
724 |
+ Added supports for file mangling, and correct merging of unfilled |
725 |
backups from mangled or unmangled (and compressed or uncompressed) |
726 |
fulls when browsing or restoring. |
727 |
|
728 |
+ Only displays a "Start Incr Backup" button if there are already some |
729 |
backups. |
730 |
|
731 |
+ For DHCP hosts, when a user tries to manually start a backup, add |
732 |
a check for the netbios name of both the host the request came |
733 |
from (REMOTE_ADDR) and the last known DHCP address for that host |
734 |
to see if either address matches the host. If not, an error |
735 |
message is display. The previous behavior was that only requests |
736 |
from the client itself succeeded, and requests from other machines |
737 |
quietly failed. |
738 |
|
739 |
* Changed the version numbering to X.Y.Z, instead of X.0Y. This release |
740 |
is 1.4.0. The first digit is for major new releases, the middle digit |
741 |
is for significant feature releases and improvements, and the last |
742 |
digit is for bug fixes. You should think of the old 1.00, 1.01, 1.02 |
743 |
and 1.03 as 1.0.0, ..., 1.3.0. |
744 |
|
745 |
* BackupPC and the CGI script BackupPC_Admin now check that the effective |
746 |
user id is correct to avoid accidentally launching BackupPC as the |
747 |
wrong user or detecting CGI configuration problems. This behavior |
748 |
can be turned off using the $Conf{BackupPCUserVerify} option. |
749 |
|
750 |
* In numerous places changed "Smb" to "Xfer" (eg: log file names) to |
751 |
support generic names for both smb and tar transport methods. The |
752 |
CGI script checks for old names for backward compatibility. |
753 |
|
754 |
* Major changed to Backup_dump to support new tar transport. All transport |
755 |
specific code moved into BackupPC::Xfer::Smb and BackupPC::Xfer::Tar |
756 |
objects. |
757 |
|
758 |
* Added workaround for a bug in Samba's smbclient for files between 2GB |
759 |
and 4GB. The file size in the tar header is incorrect. This allows |
760 |
files up to 4GB to work with smbclient, rather than 2GB. To support |
761 |
files larger than 2GB you must make sure perl is compiled with the |
762 |
uselargefiles option (use "perl -V | egrep largefiles" to check) and |
763 |
the pool directory must be on a file system that supports large files. |
764 |
|
765 |
* Moved the pool writing code into a module BackupPC::PoolWrite. This |
766 |
allows the clever file pool checking (digest, uncompressing, comparing |
767 |
etc with minimum disk IO) to be used easily in multiple places (eg: it |
768 |
is now used for writing attribute files so they can be pooled). |
769 |
|
770 |
* Changed MD5 to Digest::MD5 to avoid use of the depreceated MD5 module. |
771 |
|
772 |
* Shortened default $Conf{MyPath} so that perl's taint mode is more likely |
773 |
to be happy. The old $Conf{MyPath} contained /usr/local/bin, which |
774 |
on one user's machine was world writable and perl -T correctly |
775 |
complained about it. |
776 |
|
777 |
* Fixed ping command options in Lib.pm so that it works on OpenBSD. |
778 |
Thanks to Kyle Amon for sending the fix. Decided to move the |
779 |
ping options from Lib.pm into config.pl (as $Conf{PingArgs}) and |
780 |
now configure.pl tries to come up with a sensible default based on |
781 |
the OS. |
782 |
|
783 |
* Fixed argument checking in BackupPC_tarExtract to allow '$' in the |
784 |
share name (eg: C$). Thanks to Jules Agee for this fix. Also |
785 |
changed the default config.pl so that single quotes are used |
786 |
everywhere so that people don't get tripped up putting '$' inside |
787 |
double-quoted strings. |
788 |
|
789 |
#------------------------------------------------------------------------ |
790 |
# Version 1.03, 9 Dec 2001 |
791 |
#------------------------------------------------------------------------ |
792 |
|
793 |
* BackupPC now has full support for compression. There are now two |
794 |
pool areas, the original pool for uncompressed files, and cpool for |
795 |
compressed files. The compression is done by Compress::Zlib. |
796 |
Compression reduces the pool disk usage by around 40%, although your |
797 |
mileage may vary. Compression is optional and can also be specified on |
798 |
a per-PC basis (although this will cost more pool storage since many |
799 |
backup files will have to be stored in both compressed and |
800 |
uncompressed forms. |
801 |
|
802 |
* A new script, BackupPC_compressPool, can be run to compress the entire |
803 |
pool. This is used once to migrate all the pool data from uncompressed |
804 |
to compressed on existing installations. Read the documentation |
805 |
(Installing BackupPC/Compressing an existing pool) before running |
806 |
BackupPC_compressPool! |
807 |
|
808 |
Alternatively, compression can simply be turned on and all new backups |
809 |
will be compressed. Both old (uncompressed) and new (compressed) |
810 |
backups can be browsed and viewed. Eventually, the old backups will |
811 |
expire and all the pool data will be compressed. However, until the |
812 |
old backups expire, this approach could require 60% or more additional |
813 |
pool storage space to store both uncompressed and compressed versions |
814 |
of the backup files. |
815 |
|
816 |
* Significant improvements to the cgi interface, BackupPC_Admin: |
817 |
|
818 |
- much better layout navigation |
819 |
- handles compressed backup files and compressed log files |
820 |
- handles unfilled incremental dumps |
821 |
- better backup directory browsing navigation |
822 |
- reports compression statistics |
823 |
- $Conf{CgiDateFormatMMDD} allows you to set date format (MM/DD or DD/MM) |
824 |
- Additional customization with $Conf{CgiHeaderFontType}, |
825 |
$Conf{CgiHeaderFontSize}, $Conf{CgiNavBarBgColor}, and |
826 |
$Conf{CgiHeaderBgColor}. |
827 |
|
828 |
* Eliminated BackupPC_queueAll. BackupPC directly reads the hosts |
829 |
file and queues the PCs itself. Like config.pl, BackupPC will |
830 |
re-read the hosts file on each wakeup if its modification time |
831 |
changes, or upon a SIGHUP. This also makes for better behavior |
832 |
when adding a host: if you add hosts, simply send a SIGHUP to |
833 |
BackupPC or wait for the next wakeup. |
834 |
|
835 |
* BackupPC_dump now compresses the SmbLOG file if compression is enabled. |
836 |
|
837 |
* BackupPC_dump keeps track of compressed file sizes so that compression |
838 |
statistics can be reported by the cgi interface. |
839 |
|
840 |
* Aging of old log files now handles compressed log files (.z extension). |
841 |
|
842 |
* Added configuration option $Conf{IncrFill} to specify whether |
843 |
incremental dumps should be filled in. Old behavior was that |
844 |
filling was on. Now it's optional. See config.pl for more |
845 |
details. |
846 |
|
847 |
* BackupPC_nightly now cleans and generates statistics for both |
848 |
the uncompressed pool and compressed pool (cpool). |
849 |
|
850 |
* Added new utility script BackupPC_zcat that can be used to |
851 |
uncompresses BackupPC files. |
852 |
|
853 |
* configure.pl offers various options related to compression, |
854 |
depending upon whether this is a new install or upgrade, |
855 |
and whether or not Compress::Zlib is installed. |
856 |
|
857 |
* configure.pl now makes a backup copy of config.pl before |
858 |
config.pl is updated. |
859 |
|
860 |
* added three new fields to the backups file to handle optional |
861 |
filling and compression stats. |
862 |
|
863 |
* Added -e option to BackupPC_dump. BackupPC now invokes BackupPC_dump -e |
864 |
on each dhcp host once each night to verify that very old backups are |
865 |
expired. This ensures that very old backups are expired even if |
866 |
the dhcp host has not been on the network for a long time. |
867 |
|
868 |
* fixed bug in BackupPC::FileZIO.pm that required Compress::Zlib, |
869 |
even if compression was off. Thanks to Steve Holmes for reporting |
870 |
this. |
871 |
|
872 |
* fixed bug that caused a BackupPC queue to get blocked when a backup |
873 |
cancel attempt was made during the BackupPC_link phase. |
874 |
|
875 |
#------------------------------------------------------------------------ |
876 |
# Version 1.02, 28 Oct 2001. |
877 |
#------------------------------------------------------------------------ |
878 |
|
879 |
* Added new script BackupPC_tarExtract to extract the smbclient tar |
880 |
archive. This reduces disk writes by perhaps 90-95% and disk reads by |
881 |
50%. Previously, tar was used to extract and write everything to disk. |
882 |
Then BackupPC_dump would read enough of each file to compute the MD5 |
883 |
digest, and then compare the full file with candidate pool files. So |
884 |
for each 1MB file that matches a single file in the pool, there would |
885 |
be 1MB of disk writes and 2MB of disk reads (to compare two 1MB files). |
886 |
|
887 |
BackupPC_tarExtract instead extracts the archive using a 1MB memory |
888 |
buffer. This allows the MD5 digest to be computed without touching the |
889 |
disk. Next, any potential pool file compares are done by comparing the |
890 |
pool file against the incoming tar data in memory, which only requires |
891 |
the pool file to be read. So for each 1MB file that matches a single |
892 |
file in the pool, there are now no disk writes, and only 1MB of reads. |
893 |
BackupPC_tarExtract handles arbitrary size files and repeated |
894 |
potential pool matches. If the incoming file doesn't match the pool |
895 |
then it is written to disk (once the pool is mature this happens maybe |
896 |
5-10% of the time). |
897 |
|
898 |
* Substantial changes to BackupPC_dump: |
899 |
|
900 |
+ BackupPC_tarExtract is now used in place of tar. |
901 |
|
902 |
+ BackupPC_dump now reads the output from both smbclient and |
903 |
BackupPC_tarExtract and merges them into SmbLOG. |
904 |
|
905 |
+ Named pipes are no longer used to connect smbclient to tar |
906 |
(now BackupPC_tarExtract). Regular pipes are used instead. |
907 |
This avoids the need to system mknod or mkfifo. |
908 |
|
909 |
+ Locked files on the client that can't be read by smbclient |
910 |
previously were filled with 0x0 bytes by smbclient, meaning |
911 |
tar extracted a useless file filled with 0x0 bytes. Now, |
912 |
BackupPC_dump watches the output of smbclient and removes |
913 |
any files that smbclient couldn't read. This avoids storing |
914 |
useless files. It tries to replace such files with a hard link |
915 |
to a previous dump. These actions appear in the log file. |
916 |
|
917 |
* added new module lib/BackupPC/FileZIO.pm. This handles pool file |
918 |
I/O and is used by BackupPC_tarExtract. BackupPC::FileIO supports |
919 |
reading and writing compressed and regular files and provides all the |
920 |
hooks for compression support in BackupPC (should be supported in next |
921 |
version). BackupPC::FileIO also does efficient writing of files that |
922 |
contain leading 0x0 bytes (by seeking past the 0x0 bytes). This is |
923 |
helpful when smbclient reads a locked file, and it fills the tar |
924 |
output with a file of the correct size but all 0x0. Such files will be |
925 |
later removed by BackupPC_dump. But in the meantime, BackupPC::FileIO |
926 |
writes such files efficiently (as sparse files), meaning just a few |
927 |
blocks of disk space will be needed even if the file is large. |
928 |
|
929 |
* alive/dead counting for blackout now works correctly for DHCP hosts. |
930 |
|
931 |
* BackupPC resets activeJob on startup, to fix bug when BackupPC was |
932 |
killed and restarted with backups running. |
933 |
|
934 |
* added extra non blocking select() in BackupPC to make sure the socket |
935 |
reads don't block. |
936 |
|
937 |
* BackupPC avoids queuing multiple BackupPC_queueAll's on the CmdQueue. |
938 |
|
939 |
* Updated BackupPC_sendEmail to correctly parse the locked file |
940 |
error from 2.2.1a smbclient, so that missing Outlook file emails |
941 |
can be correctly sent. |
942 |
|
943 |
* Changed HostInfoRead() in lib/BackupPC/Lib.pm to lowercase the |
944 |
hostname read from the hosts file. |
945 |
|
946 |
* BackupPC_Admin provides general summary when the host name is empty. |
947 |
|
948 |
* configure.pl (and BackupPC) now requires perl 5.6.0 or later. |
949 |
|
950 |
* configure.pl complains if BackupPC is already running, reminding you |
951 |
to stop it before upgrading. |
952 |
|
953 |
* updated documentation, and fixed auto-insertion of config.pl into |
954 |
BackupPC.pod (previously the last config parameter was left out of |
955 |
BackupPC.pod). |
956 |
|
957 |
#------------------------------------------------------------------------ |
958 |
# Version 1.01, 30 Sep 2001 |
959 |
#------------------------------------------------------------------------ |
960 |
|
961 |
* Documentation cleanup in README, doc/BackupPC.pod, conf/config.pl. |
962 |
|
963 |
* BackupPC_sendMail now reads the optional per-PC config file, allowing |
964 |
email configuration parameters to be set on a per-PC basis. |
965 |
|
966 |
* Removed the unused 4096-length MD5 digest code in lib/BackupPC/Lib.pm. |
967 |
|
968 |
#------------------------------------------------------------------------ |
969 |
# Version 1.00, 21 Sep 2001 |
970 |
#------------------------------------------------------------------------ |
971 |
|
972 |
* Initial release of BackupPC on sourceforge.net. |