/[smeserver]/rpms/e-smith-backup/sme7/e-smith-backup-1.15.0-reformat.patch
ViewVC logotype

Contents of /rpms/e-smith-backup/sme7/e-smith-backup-1.15.0-reformat.patch

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.2 - (show annotations) (download)
Tue Oct 7 19:27:49 2008 UTC (15 years, 8 months ago) by slords
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +0 -0 lines
FILE REMOVED
New streams

1 diff -Nur -x '*.orig' -x '*.rej' e-smith-backup-1.15.0/root/etc/e-smith/events/actions/workstation-backup-dar mezzanine_patched_e-smith-backup-1.15.0/root/etc/e-smith/events/actions/workstation-backup-dar
2 --- e-smith-backup-1.15.0/root/etc/e-smith/events/actions/workstation-backup-dar 2007-09-07 14:38:19.000000000 -0400
3 +++ mezzanine_patched_e-smith-backup-1.15.0/root/etc/e-smith/events/actions/workstation-backup-dar 2007-09-05 17:03:55.000000000 -0400
4 @@ -2,6 +2,7 @@
5
6 #----------------------------------------------------------------------
7 # copyright (C) 2006 Jean-Paul Leclere <jean-paul@leclere.org>
8 +# copyright (C) 2007 Charlie Brady <charlieb@e-smith.com>
9 #
10 # This program is free software; you can redistribute it and/or modify
11 # it under the terms of the GNU General Public License as published by
12 @@ -38,10 +39,16 @@
13
14 my $tm = localtime(time);
15 my $bkname = $tm->year+1900;
16 - if (($tm->mon) < 9) {$bkname .= ("0".($tm->mon+1))} else {$bkname .= ($tm->mon+1)}
17 - if (($tm->mday) < 10) {$bkname .= ("0".$tm->mday)} else {$bkname .= $tm->mday}
18 +
19 +$bkname .= "0" if ($tm->mon < 9);
20 +$bkname .= $tm->mon + 1;
21 +
22 +$bkname .= "0" if ($tm->mday < 10);
23 +$bkname .= $tm->mday;
24 +
25 my $dow = $tm->wday;
26 -my $id = $backupwk->prop('Id') || $confdb->get('SystemName')->value . "." . $confdb->get('DomainName')->value;
27 +my $id = $backupwk->prop('Id') ||
28 + $confdb->get('SystemName')->value . "." . $confdb->get('DomainName')->value;
29 my $err;
30 my $ref = "";
31 my $mntdone = 0;
32 @@ -77,42 +84,58 @@
33
34 # verify backup directory not already mounted
35
36 -if ( $VFSType ne 'usb' ) {
37 +if ( $VFSType eq 'usb' )
38 +{
39 + $mntdir = "/$smbshare";
40 +}
41 +else
42 +{
43 open FD, '/proc/mounts';
44 - while (<FD>) {
45 + while (<FD>)
46 + {
47 next unless /$smbhost(.*)\/$smbshare/;
48 next unless /$mntdir/;
49 $err++
50 - }
51 + }
52 close FD;
53 - if ($err) {
54 - ldie("Seems backup directory is already mounted. It should not happen \
55 -and maybe there is a zombie process you must kill, or another backup in progress. \n")
56 - }
57 - if ($VFSType eq 'cifs'){
58 - $err = qx(/bin/mount -t cifs $smbhost:$smbshare $mntdir -o user=$login,pass=$password);
59 - if ($err) {ldie("Error while mounting $smbhost:$smbshare : \n" . $err)};
60 - }
61 - elsif ($VFSType eq 'smbfs'){
62 - $err = qx(/bin/mount -t smbfs //$smbhost/$smbshare $mntdir -o username=$login,password=$password,dmask=777,fmask=777,ip=$smbhost 2>&1);
63 - if ($err) {ldie("Error while mounting //$smbhost/$smbshare : \n" . $err)};
64 - }
65 - elsif ($VFSType eq 'nfs'){
66 + if ($err)
67 + {
68 + ldie("Seems backup directory is already mounted. " .
69 + "It should not happen and maybe there is a zombie process " .
70 + "you must kill, or another backup in progress. \n");
71 + }
72 + if ($VFSType eq 'cifs')
73 + {
74 + $err = qx(/bin/mount -t cifs $smbhost:$smbshare $mntdir -o user=$login,pass=$password 2>&1);
75 + ldie("Error while mounting $smbhost:$smbshare : \n" . $err) if $err;
76 + }
77 + elsif ($VFSType eq 'smbfs')
78 + {
79 + $err =
80 + qx(/bin/mount -t smbfs //$smbhost/$smbshare $mntdir
81 + -o username=$login,password=$password,dmask=777,fmask=777,ip=$smbhost 2>&1);
82 + ldie("Error while mounting //$smbhost/$smbshare : \n" . $err) if $err;
83 + }
84 + elsif ($VFSType eq 'nfs')
85 + {
86 $err = qx(/bin/mount -t nfs -o nolock $smbhost:/$smbshare $mntdir 2>&1);
87 - if ($err) {ldie("Error while mounting $smbhost:/$smbshare : \n" . $err)};
88 - }
89 - else {ldie("Error while mounting $smbhost/$smbshare : $VFSType not supported.\n")}
90 -
91 - $mntdone = 1;
92 + ldie("Error while mounting $smbhost:/$smbshare : \n" . $err) if $err;
93 + }
94 + else
95 + {
96 + ldie("Error while mounting $smbhost/$smbshare : $VFSType not supported.\n");
97 }
98 -else { $mntdir = "/".$smbshare }
99 + $mntdone = 1;
100 +}
101
102 -if (-d "$tmpdir/$id") {
103 +if (-d "$tmpdir/$id")
104 +{
105 eval {rmtree("$tmpdir/$id")};
106 - if ($@) {ldie("Error while deleting $tmpdir/$id : $@.\n")}
107 - }
108 + ldie("Error while deleting $tmpdir/$id : $@.\n") if $@;
109 +}
110 eval {mkpath("$tmpdir/$id")};
111 -if ($@) {ldie("Error while creating $tmpdir/$id : $@. Maybe insufficient rights on backup directory.\n")}
112 +ldie("Error while creating $tmpdir/$id : $@. Maybe insufficient rights on backup directory.\n")
113 + if $@;
114
115 # we know right backup directory is in line and we can write on it.
116 $report .= "Backup temp directory $tmpdir/$id is mounted and is writable \n";
117 @@ -121,63 +144,69 @@
118
119 ++$incnum;
120 $incnum %= $daysinset;
121 -if ( $incnum == 0 ) {
122 +if ($incnum == 0)
123 +{
124 ++$setnum;
125 $setnum %= $setsmax;
126 - }
127 +}
128
129 $report .= "Using set number $setnum of $setsmax\n";
130 -if ($incnum == 0) {
131 - $report .= "Attempt to full backup \n";
132 - }
133 -else {
134 - $report .= "Attempt to incremental backup number $incnum of $daysinset\n";
135 - }
136 +$report .= "Attempt to " .
137 + ($incnum == 0) ?
138 + "full backup \n" :
139 + "incremental backup number $incnum of $daysinset\n";
140
141 # if no set directory, make it
142 -
143 my $setname = "set" . $setnum;
144 my $setdirname = $mntdir . "/$id/" . $setname;
145
146 -unless ( -d $setdirname ) {
147 +unless ( -d $setdirname )
148 +{
149 eval {mkpath($setdirname)};
150 - if ($@) {ldie("Can't create $setdirname : $@.\n")}
151 + ldie("Can't create $setdirname : $@.\n") if $@;
152 $report .= "Backup directory $id/$setname created \n";
153 - }
154 +}
155
156 -# if $incnum <> 0 backup should be incremental
157 -# we find correct reference backup for incremental
158 -
159 -if ( $incnum != 0 ) {
160 +if ( $incnum == 0 )
161 +{
162 + $bkname = "full-" . $bkname;
163 +}
164 +else
165 +{
166 + # if $incnum <> 0 backup should be incremental
167 + # we find correct reference backup for incremental
168 my $file;
169 opendir(DIR, $setdirname) or ldie("Can't open dir $setdirname $!");
170 - while (defined($file = readdir(DIR))) {
171 + while (defined($file = readdir(DIR)))
172 + {
173 next if $file =~ /^\.\.?$/;
174 - if ( $file =~ /dar$/) {
175 + if ($file =~ /dar$/)
176 + {
177 $ref = $file;
178 - }
179 }
180 + }
181 closedir (DIR);
182 # if no reference do full backup
183 - if ($ref eq "") {
184 + if ($ref eq "")
185 + {
186 $incnum = 0;
187 $report .= "No existing reference backup, will make full backup \n";
188 $bkname = "full-" . $bkname;
189 - }
190 - else { # removing .dar extension
191 + }
192 + else
193 + {
194 + # removing .dar extension
195 $ref =~ s/\..*\.dar$//;
196 $ref = "--ref " . $setdirname . "/" . $ref;
197 $bkname = "inc-" . sprintf("%03d", $incnum) . "-". $bkname;
198 - }
199 - }
200 -else {
201 - $bkname = "full-" . $bkname;
202 }
203 +}
204
205 -unless ( ( $incnum != 0 ) || ( $fullday == 7 ) || ( $dow == $fullday ) ) {
206 +unless ( ( $incnum != 0 ) || ( $fullday == 7 ) || ( $dow == $fullday ) )
207 +{
208 my $delay = ($fullday - $dow) % 7;
209 ldie("Not a permitted day for full backup. Aborting...\nNext full backup in $delay days.\n");
210 - }
211 +}
212
213 $report .= "Backup base file name is $bkname \n";
214 $report .= "Making backup on temporary dir... \n";
215 @@ -185,9 +214,10 @@
216 # calculate real timeout if we timeout incrementals only.
217 # timeout of 88500 is a security for aborting backup within 24h
218
219 -if ( ($ref eq "") && ($inconly eq "yes")) {
220 +if ( ($ref eq "") && ($inconly eq "yes"))
221 +{
222 $timeout = 88500;
223 - }
224 +}
225 $report .= "using a backup session timeout of : $timeout seconds\n";
226
227 # expanding backup configuration file template
228 @@ -198,40 +228,52 @@
229
230 # launching dar backup
231
232 -$err = system("/usr/bin/timeout -s TERM $timeout /usr/bin/dar -c $tmpdir/$id/$bkname $ref -B /etc/dar/$job.dcf");
233 +$err = system("/usr/bin/timeout",
234 + "-s",
235 + "TERM",
236 + "$timeout",
237 + "/usr/bin/dar",
238 + "-c",
239 + "$tmpdir/$id/$bkname",
240 + "$ref",
241 + "-B",
242 + "/etc/dar/$job.dcf");
243
244 if ($err == 0)
245 {
246 -$report .= "Backup completed successfully on temporary dir \n";
247 + $report .= "Backup completed successfully on temporary dir \n";
248 }
249 elsif ($err == 15)
250 {
251 -$report .= "Partial backup stored on temp dir.\n"
252 - . " Session closed by timeout after $timeout seconds.\n"
253 - . "Not an error, backup process will continue next night.\n";
254 + $report .= "Partial backup stored on temp dir.\n"
255 + . " Session closed by timeout after $timeout seconds.\n"
256 + . "Not an error, backup process will continue next night.\n";
257 }
258 else
259 {
260 -$err = $err >> 8;
261 -ldie("Dar error during backup : $err \n");
262 + $err = $err >> 8;
263 + ldie("Dar error during backup : $err \n");
264 }
265
266 -if ($incnum == 0) {
267 +if ($incnum == 0)
268 +{
269 $report .= "Rotating backups in a new set $setdirname. \n";
270 eval {rmtree($setdirname)};
271 - if ($@) {ldie("Error while deleting $setdirname : $@.\n")}
272 + ldie("Error while deleting $setdirname : $@.\n") if $@;
273 eval {mkpath("$setdirname")};
274 - if ($@) {ldie("Error while creating $setdirname : $@.\n")}
275 - }
276 + ldie("Error while creating $setdirname : $@.\n") if $@;
277 +}
278 +
279 $report .= "Moving backup files to target directory $setdirname \n";
280 -foreach (<$tmpdir/$id/$bkname*>) {
281 - unless ( move($_, $setdirname) )
282 - {ldie("Error while moving backup file $_ from temporary dir $tmpdir/$id to $setdirname : $!")};
283 - }
284
285 -# unmount shared folder
286 +foreach (<$tmpdir/$id/$bkname*>)
287 +{
288 + ldie("Error while moving backup file $_ from temporary dir $tmpdir/$id to $setdirname : $!")
289 + unless move($_, $setdirname);
290 +}
291
292 -if ( $VFSType ne 'usb' ) {system("/bin/umount -f $mntdir")}
293 +# unmount shared folder
294 +system("/bin/umount -f $mntdir") unless ($VFSType ne 'usb');
295
296 # time now to update backup configuration
297
298 @@ -242,26 +284,28 @@
299 $tim = ctime();
300 $report .= "Backup successfully terminated at : $tim \n";
301
302 -if ($mail eq 'yes') {
303 +if ($mail eq 'yes')
304 +{
305 open (MAIL, "|/var/qmail/bin/qmail-inject -a admin")
306 || die "Cannot start mail program: $!\n";
307 print MAIL $report;
308 close(MAIL);
309 - }
310 +}
311
312 exit (0);
313
314 sub ldie
315 {
316 -my $errmsg = shift;
317 -$report .= "*** No backup allowed or error during backup ***\n";
318 -$report .= $errmsg;
319 -if (($mail eq 'yes') || ($mail eq 'error')) {
320 - open (MAIL, "|/var/qmail/bin/qmail-inject -a admin")
321 - || die "Cannot start mail program: $!\n";
322 - print MAIL $report;
323 - close(MAIL);
324 + my $errmsg = shift;
325 + $report .= "*** No backup allowed or error during backup ***\n";
326 + $report .= $errmsg;
327 + if (($mail eq 'yes') || ($mail eq 'error'))
328 + {
329 + open (MAIL, "|/var/qmail/bin/qmail-inject -a admin")
330 + || die "Cannot start mail program: $!: message was $errmsg\n";
331 + print MAIL $report;
332 + close(MAIL);
333 }
334 -if (($mntdone) && ($VFSType ne 'usb')) {system("/bin/umount $mntdir")};
335 -die($errmsg);
336 + system("/bin/umount $mntdir") if $mntdone;
337 + die($errmsg);
338 }
339 diff -Nur -x '*.orig' -x '*.rej' e-smith-backup-1.15.0/root/etc/e-smith/web/functions/backup mezzanine_patched_e-smith-backup-1.15.0/root/etc/e-smith/web/functions/backup
340 --- e-smith-backup-1.15.0/root/etc/e-smith/web/functions/backup 2007-09-07 14:38:19.000000000 -0400
341 +++ mezzanine_patched_e-smith-backup-1.15.0/root/etc/e-smith/web/functions/backup 2007-09-07 14:37:54.000000000 -0400
342 @@ -2192,47 +2192,53 @@
343 my $mntdir = $backupwkrec->prop('MountDir') || '/mnt/smb';
344 my $mounted;
345 my $key;
346 - my $id = $backupwkrec->prop('Id') || $conf->get('SystemName')->value . "." . $conf->get('DomainName')->value;
347 + my $id = $backupwkrec->prop('Id') ||
348 + $conf->get('SystemName')->value . "." . $conf->get('DomainName')->value;
349 my $err;
350 my $VFSType = $backupwkrec->prop('VFSType') || 'smbfs';
351
352 # Mounting backup shared folder
353
354 - if ( $err = dmount($smbhost,$smbshare,$mntdir,$login,$password,$VFSType) )
355 - {
356 + if ($err = dmount($smbhost,$smbshare,$mntdir,$login,$password,$VFSType))
357 + {
358 esmith::cgi::genResult(
359 $q, $fm->localise('ERR_MOUNTING_SMBSHARE') . "\n" . $err
360 );
361 return;
362 - }
363 - elsif ( $VFSType ne 'usb' ) {$mounted = 1}
364 + }
365 + elsif ( $VFSType ne 'usb' )
366 + {
367 + $mounted = 1;
368 + }
369
370 # Test if backup subdirectory for our server
371
372 my $mntbkdir = $mntdir . "/$id";
373 - unless ( -d $mntbkdir)
374 - {
375 - if ($mounted) {
376 + unless (-d $mntbkdir)
377 + {
378 + if ($mounted)
379 + {
380 system("/bin/umount $mntdir") == 0
381 or die($fm->localise('ERR_WHILE_UNMOUNTING'),"\n");
382 - }
383 - esmith::cgi::genResult(
384 - $q, $fm->localise('ERR_NO_HOST_DIR'.$id)
385 - );
386 - return;
387 }
388 + esmith::cgi::genResult($q, $fm->localise('ERR_NO_HOST_DIR'.$id));
389 + return;
390 + }
391
392 my $backupkey = $q->param ('backupset');
393 - if ($backupkey =~ /^(.*)$/) {
394 + if ($backupkey =~ /^(.*)$/)
395 + {
396 $backupkey = $1;
397 - }
398 - else {
399 - if ($mounted) {
400 + }
401 + else
402 + {
403 + if ($mounted)
404 + {
405 system("/bin/umount $mntdir") == 0
406 or die($fm->localise('ERR_WHILE_UNMOUNTING'),"\n");
407 - }
408 - die('Unsecure data : ' . $backupkey);
409 }
410 + die('Unsecure data : ' . $backupkey);
411 + }
412
413 if (open(RD, "-|"))
414 {
415 @@ -2300,14 +2306,16 @@
416 my $mounted;
417 my %backupfiles = ();
418 my $key;
419 - my $id = $rec->prop('Id') || $conf->get('SystemName')->value . "." . $conf->get('DomainName')->value;
420 + my $id = $rec->prop('Id') ||
421 + $conf->get('SystemName')->value . "." . $conf->get('DomainName')->value;
422 my $VFSType = $rec->prop('VFSType') || 'smbfs';
423 my $smbhost = $rec->prop('SmbHost');
424 my $smbshare = $rec->prop('SmbShare');
425 my $err;
426
427 my $setbackupflist = sub {
428 - if ( $_ =~ /\.dar/ ) {
429 + if ( $_ =~ /\.dar/ )
430 + {
431 my $dir = $File::Find::dir;
432 my $backupref;
433 $dir =~ s/$mntbkdir\///;
434 @@ -2320,38 +2328,38 @@
435 };
436
437 # Mounting backup shared folder
438 -
439 unless (-d $mntdir)
440 {
441 - mkdir -p $mntdir;
442 + mkdir -p $mntdir;
443 }
444
445 my $login = $rec->prop('Login') || 'backup';
446 my $password = $rec->prop('Password') || 'backup';
447
448 - if ( $err = dmount($smbhost,$smbshare,$mntdir,$login,$password,$VFSType) )
449 - {
450 - esmith::cgi::genResult(
451 - $q, $fm->localise('ERR_MOUNTING_SMBSHARE') . "\n" . $err
452 - );
453 + if ($err = dmount($smbhost,$smbshare,$mntdir,$login,$password,$VFSType))
454 + {
455 + esmith::cgi::genResult($q,
456 + $fm->localise('ERR_MOUNTING_SMBSHARE') . "\n" . $err);
457 return;
458 - }
459 - elsif ( $VFSType ne 'usb' ) {$mounted = 1}
460 + }
461 + elsif ($VFSType ne 'usb')
462 + {
463 + $mounted = 1;
464 + }
465
466 # Test if backup subdirectory for our server
467
468 $mntbkdir = $mntdir . "/$id";
469 unless ( -d $mntbkdir)
470 - {
471 - if ($mounted) {
472 + {
473 + if ($mounted)
474 + {
475 system("/bin/umount $mntdir") == 0
476 or die($fm->localise('ERR_WHILE_UNMOUNTING'),"\n");
477 - }
478 - esmith::cgi::genResult(
479 - $q, $fm->localise('ERR_NO_HOST_DIR'.$id)
480 - );
481 - return;
482 }
483 + esmith::cgi::genResult($q, $fm->localise('ERR_NO_HOST_DIR'.$id));
484 + return;
485 + }
486
487 # Finding existing backups
488
489 @@ -2361,18 +2369,21 @@
490 my @blabels;
491 my $backups = 0;
492
493 - foreach $key (sort keys %backupfiles) {
494 + foreach $key (sort keys %backupfiles)
495 + {
496 my $labkey = $mntbkdir . '/' . $backupfiles{$key}[0] . '/' . $backupfiles{$key}[1];
497 $blabels{$labkey} = $backupfiles{$key}[1] . ' (' . $backupfiles{$key}[0] . ')';
498 $backups = push @blabels, $labkey;
499 - }
500 + }
501
502 - if ($mounted) {
503 + if ($mounted)
504 + {
505 system("/bin/umount $mntdir") == 0
506 or die($fm->localise('ERR_WHILE_UNMOUNTING'),"\n");
507 - }
508 + }
509
510 - if ( $backups == 0 ) {
511 + if ( $backups == 0 )
512 + {
513 esmith::cgi::genResult(
514 $q, $fm->localise('NO_BACKUPS_TO_RESTORE'));
515 return;
516 @@ -2430,7 +2441,8 @@
517 my @restorefiles;
518
519 my $backupsetlist = sub {
520 - if ( $_ =~ /\.dar/ ) {
521 + if ( $_ =~ /\.dar/ )
522 + {
523 my $backupref = $File::Find::name;
524 $backupref =~ s/\.[0-9]+\.dar//;
525 $_ =~ s/\..*\.dar//;
526 @@ -2464,7 +2476,8 @@
527 my $backupwkrec = $conf->get('backupwk');
528 my $login = $backupwkrec->prop('Login');
529 my $password = $backupwkrec->prop('Password');
530 - my $id = $backupwkrec->prop('Id') || $conf->get('SystemName')->value . "." . $conf->get('DomainName')->value;
531 + my $id = $backupwkrec->prop('Id')
532 + || $conf->get('SystemName')->value . "." . $conf->get('DomainName')->value;
533 my $mntdir = $backupwkrec->prop('MountDir') || '/mnt/smb';
534 my $mounted;
535 my $VFSType = $backupwkrec->prop('VFSType') || 'smbfs';
536 @@ -2472,8 +2485,8 @@
537 my $smbshare = $backupwkrec->prop('SmbShare');
538 my $err;
539
540 - if ( $err = dmount($smbhost,$smbshare,$mntdir,$login,$password,$VFSType) )
541 - {
542 + if ($err = dmount($smbhost,$smbshare,$mntdir,$login,$password,$VFSType))
543 + {
544 esmith::cgi::genHeaderNonCacheable(
545 $q,
546 undef, $fm->localise('RESTORE_CANNOT_PROCEED')
547 @@ -2482,33 +2495,38 @@
548 $q, $fm->localise('ERR_MOUNTING_SMBSHARE') . "\n" . $err
549 );
550 return;
551 - }
552 - elsif ( $VFSType ne 'usb' ) {$mounted = 1}
553 + }
554 + elsif ($VFSType ne 'usb')
555 + {
556 + $mounted = 1;
557 + }
558
559 # Test if backup subdirectory for our server
560
561 my $mntbkdir = $mntdir . "/$id";
562 unless ( -d $mntbkdir)
563 - {
564 - if ($mounted) {
565 + {
566 + if ($mounted)
567 + {
568 system("/bin/umount $mntdir") == 0
569 or die($fm->localise('ERR_WHILE_UNMOUNTING'),"\n");
570 - }
571 + }
572 esmith::cgi::genResult(
573 $q, $fm->localise('ERR_NO_HOST_DIR'.$id)
574 );
575 return;
576 - }
577 + }
578
579 # finding list of available backups
580
581 find { wanted => \&$backupsetlist, untaint => 1 }, $set ;
582
583 my $key;
584 - foreach $key (sort keys %backupsetfiles) {
585 + foreach $key (sort keys %backupsetfiles)
586 + {
587 push @restorefiles, $backupsetfiles{$key};
588 last if ( $backupsetfiles{$key} eq $restoreref );
589 - }
590 + }
591
592 # backup is online, restoring now
593
594 @@ -2622,24 +2640,29 @@
595 $| = 1;
596
597 my $file;
598 - foreach $file (@restorefiles) {
599 - if ($file =~ /^(.*)$/) {
600 + foreach $file (@restorefiles)
601 + {
602 + if ($file =~ /^(.*)$/)
603 + {
604 $file = $1;
605 - }
606 - else {
607 - if ($mounted) {
608 + }
609 + else
610 + {
611 + if ($mounted)
612 + {
613 system("/bin/umount $mntdir") == 0
614 or die($fm->localise('ERR_WHILE_UNMOUNTING'),"\n");
615 - }
616 - die('Unsecure data : ' . $file);
617 }
618 - system ("/usr/bin/dar -x $file --verbose --noconf --no-warn=all");
619 + die('Unsecure data : ' . $file);
620 }
621 + system ("/usr/bin/dar -x $file --verbose --noconf --no-warn=all");
622 + }
623
624 - if ($mounted) {
625 + if ($mounted)
626 + {
627 system("/bin/umount $mntdir") == 0
628 or die($fm->localise('ERR_WHILE_UNMOUNTING'),"\n");
629 - }
630 + }
631
632 exit(0);
633 }
634 @@ -2665,7 +2688,8 @@
635 my $mntbkdir;
636 my $mounted;
637 my $key;
638 - my $id = $rec->prop('Id') || $conf->get('SystemName')->value . '.' . $conf->get('DomainName')->value;
639 + my $id = $rec->prop('Id') ||
640 + $conf->get('SystemName')->value . '.' . $conf->get('DomainName')->value;
641 my %blabels = ();
642 my @blabels;
643 my $backups = 0;
644 @@ -2676,7 +2700,8 @@
645 my $err;
646
647 my $setbackuplist = sub {
648 - if ( $_ =~ /\.dar/ ) {
649 + if ( $_ =~ /\.dar/ )
650 + {
651 my $dir = $File::Find::dir;
652 my $backupref;
653 $dir =~ s/$mntbkdir\///;
654 @@ -2692,42 +2717,46 @@
655
656 unless (-d $mntdir)
657 {
658 - mkdir -p $mntdir;
659 + mkdir -p $mntdir;
660 }
661
662 my $login = $rec->prop('Login') || 'backup';
663 my $password = $rec->prop('Password') || 'backup';
664
665 - if ( $err = dmount($smbhost,$smbshare,$mntdir,$login,$password,$VFSType) )
666 - {
667 + if ($err = dmount($smbhost,$smbshare,$mntdir,$login,$password,$VFSType))
668 + {
669 esmith::cgi::genResult(
670 $q, $fm->localise('ERR_MOUNTING_SMBSHARE') . "\n" . $err
671 );
672 return;
673 - }
674 - elsif ( $VFSType ne 'usb' ) {$mounted = 1}
675 + }
676 + elsif ($VFSType ne 'usb')
677 + {
678 + $mounted = 1;
679 + }
680
681 # Test if backup subdirectory for our server
682
683 $mntbkdir = $mntdir . '/' . $id;
684 unless ( -d $mntbkdir)
685 - {
686 - if ($mounted) {
687 + {
688 + if ($mounted)
689 + {
690 system("/bin/umount $mntdir") == 0
691 or die($fm->localise('ERR_WHILE_UNMOUNTING'),"\n");
692 - }
693 + }
694 esmith::cgi::genResult(
695 $q, $fm->localise('ERR_NO_HOST_DIR'.$id)
696 );
697 return;
698 - }
699 + }
700
701 my $catalog = "$mntbkdir/dar-catalog";
702 unless ( -e $catalog)
703 - {
704 + {
705 system("/usr/bin/dar_manager -C $catalog") == 0
706 or die($fm->localise('ERR_DAR_CATALOG'),"\n");
707 - }
708 + }
709
710 # find available backups for the server
711
712 @@ -2740,59 +2769,68 @@
713 my @setd;
714 my @bkname;
715 open(DAR_LIST, "/usr/bin/dar_manager -B $catalog -l |");
716 - while (<DAR_LIST>) {
717 + while (<DAR_LIST>)
718 + {
719 next unless ($_ =~ /set/);
720 chomp;
721 ($bknum[$i], $setd[$i], $bkname[$i]) = split(' ', $_, 3);
722 $i++;
723 - }
724 + }
725 close (DAR_LIST);
726
727 # delete from catalog old removed backups
728
729 my $j = $i;
730 - while ($j) {
731 - unless (-e "$setd[$j-1]/$bkname[$j-1]\.1\.dar") {
732 + while ($j)
733 + {
734 + unless (-e "$setd[$j-1]/$bkname[$j-1]\.1\.dar")
735 + {
736 my $del = $bknum[$j-1];
737 - if ($del =~ /^(.*)$/) {
738 + if ($del =~ /^(.*)$/)
739 + {
740 $del = $1;
741 - }
742 - system("/usr/bin/dar_manager -B $catalog -D $del 1>&2") == 0
743 + }
744 + system("/usr/bin/dar_manager -B $catalog -D $del 1>&2") == 0
745 or die($fm->localise('ERR_DAR_CATALOG'),"\n");
746 }
747 $j--;
748 - }
749 + }
750
751 # add to catalog new backups
752
753 - foreach $key (sort keys %backupfiles) {
754 + foreach $key (sort keys %backupfiles)
755 + {
756 my $exists = 0;
757 my $rf;
758 - foreach $rf (@bkname) {
759 + foreach $rf (@bkname)
760 + {
761 $exists = 1 if ($rf eq $backupfiles{$key}[1]);
762 last if $exists;
763 - }
764 - do {
765 + }
766 + do
767 + {
768 my $add = "$mntbkdir/$backupfiles{$key}[0]/$backupfiles{$key}[1]";
769 - if ($add =~ /^(.*)$/) {
770 + if ($add =~ /^(.*)$/)
771 + {
772 $add = $1;
773 - }
774 + }
775 system("/usr/bin/dar_manager -B $catalog -A $add") == 0
776 or die($fm->localise('ERR_DAR_CATALOG'),"\n");
777 - } unless $exists;
778 - }
779 + } unless $exists;
780 + }
781
782 # update backups list from current catalog
783
784 open(DAR_LIST, "/usr/bin/dar_manager -B $catalog -l |") ;
785
786 $i = 0;
787 - while (<DAR_LIST>) {
788 + while (<DAR_LIST>)
789 + {
790 next unless m/set/;
791 chomp;
792 ($bknum[$i], $setd[$i], $bkname[$i]) = split(' ', $_, 3);
793 $i++;
794 - }
795 + }
796 close (DAR_LIST);
797
798 # set drop down list of backups
799 @@ -2800,11 +2838,12 @@
800 push @blabels, "0";
801 $blabels{"0"} = $fm->localise('ALL_BACKUPS');
802 $j = 0;
803 - while ($j < $i) {
804 + while ($j < $i)
805 + {
806 push @blabels, $bknum[$j];
807 $blabels{$bknum[$j]} = $bkname[$j];
808 $j++
809 - }
810 + }
811
812 print $q->p ($fm->localise('WORKSTN_SEL_REST_DESC') . " $smbhost/$smbshare/$id");
813
814 @@ -2857,10 +2896,11 @@
815
816 esmith::cgi::genFooter ($q);
817
818 - if ($mounted) {
819 + if ($mounted)
820 + {
821 system("/bin/umount $mntdir") == 0
822 or die($fm->localise('ERR_WHILE_UNMOUNTING'),"\n");
823 - }
824 + }
825 }
826
827 sub performWorkstnSelRestore
828 @@ -2869,10 +2909,13 @@
829
830 my $rgfilter;
831 my $filterexp = $q->param ('filterexp');
832 - if ($filterexp =~ /^(.*)$/) {
833 + if ($filterexp =~ /^(.*)$/)
834 + {
835 $filterexp = $1;
836 $rgfilter = qr/$filterexp/;
837 - } else {
838 + }
839 + else
840 + {
841 $filterexp = "";
842 }
843 my $seldatebf;
844 @@ -2889,45 +2932,52 @@
845 my $mntbkdir;
846 my $mounted;
847 my $key;
848 - my $id = $backupwkrec->prop('Id') || $conf->get('SystemName')->value . "." . $conf->get('DomainName')->value;
849 + my $id = $backupwkrec->prop('Id') ||
850 + $conf->get('SystemName')->value . "." . $conf->get('DomainName')->value;
851 my @flabels;
852 my %flabels = ();
853 my $VFSType = $backupwkrec->prop('VFSType') || 'smbfs';
854 my $err;
855
856 my $backupkey = $q->param ('backupset');
857 - if ($backupkey =~ /^(.*)$/) {
858 + if ($backupkey =~ /^(.*)$/)
859 + {
860 $backupkey = $1;
861 - }
862 - else {
863 + }
864 + else
865 + {
866 die('Unsecure data : ' . $backupkey);
867 - }
868 + }
869
870 # Mounting backup shared folder
871
872 - if ( $err = dmount($smbhost,$smbshare,$mntdir,$login,$password,$VFSType) )
873 - {
874 + if ($err = dmount($smbhost,$smbshare,$mntdir,$login,$password,$VFSType))
875 + {
876 esmith::cgi::genResult(
877 $q, $fm->localise('ERR_MOUNTING_SMBSHARE') . "\n" . $err
878 );
879 return;
880 - }
881 - elsif ( $VFSType ne 'usb' ) {$mounted = 1}
882 + }
883 + elsif ($VFSType ne 'usb')
884 + {
885 + $mounted = 1;
886 + }
887
888 # Test if backup subdirectory for our server
889
890 $mntbkdir = $mntdir . "/$id";
891 - unless ( -d $mntbkdir)
892 - {
893 - if ($mounted) {
894 + unless (-d $mntbkdir)
895 + {
896 + if ($mounted)
897 + {
898 system("/bin/umount $mntdir") == 0
899 or die($fm->localise('ERR_WHILE_UNMOUNTING'),"\n");
900 - }
901 + }
902 esmith::cgi::genResult(
903 $q, $fm->localise('ERR_NO_HOST_DIR'.$id)
904 );
905 return;
906 - }
907 + }
908
909 # Read wanted file list from selected backup
910
911 @@ -2955,10 +3005,11 @@
912 system ("/usr/bin/dar_manager -B $mntbkdir/dar-catalog -u $backupkey") == 0
913 or die ($fm->localise('ERR_EXTRACT')." : ".$!);
914
915 - if ($mounted) {
916 + if ($mounted)
917 + {
918 system("/bin/umount $mntdir") == 0
919 or die($fm->localise('ERR_WHILE_UNMOUNTING'),"\n");
920 - }
921 + }
922 exit(0);
923 }
924
925 @@ -3024,35 +3075,43 @@
926
927 my @restorelist;
928 my $when = $q->param ('seldatebefore');
929 - if ($when =~ /^(.*)$/) {
930 + if ($when =~ /^(.*)$/)
931 + {
932 $when = $1;
933 - }
934 - else {
935 + }
936 + else
937 + {
938 die('Unsecure data : ' . $when);
939 - }
940 - my $tymd = qr/((19|20)\d\d\/(?=\d\d\/\d\d-))?((0?[1-9]|1[0-2])\/(?=\d\d-))?((31|[123]0|[012]?[1-9])-)?/;
941 - my $thms = qr/([01]?[0-9]|2[0-3]):([0-5][0-9])(:[0-5][0-9])?/;
942 + }
943 + my $tymd =
944 + qr/((19|20)\d\d\/(?=\d\d\/\d\d-))?((0?[1-9]|1[0-2])\/(?=\d\d-))?((31|[123]0|[012]?[1-9])-)?/;
945 + my $thms =
946 + qr/([01]?[0-9]|2[0-3]):([0-5][0-9])(:[0-5][0-9])?/;
947
948 - unless (($when =~ m/^$tymd$thms$/) || ($when eq "")) {
949 + unless (($when =~ m/^$tymd$thms$/) || ($when eq ""))
950 + {
951 esmith::cgi::genResult(
952 $q, "$when : " . $fm->localise('ERR_INVALID_SELDATE')
953 );
954 return;
955 - }
956 + }
957
958 my $f;
959 - foreach $f ($q->param ('restorefiles')) {
960 - if ($f =~ /^(.*)$/) {
961 + foreach $f ($q->param ('restorefiles'))
962 + {
963 + if ($f =~ /^(.*)$/)
964 + {
965 push @restorelist, "\"".$1."\"";
966 - }
967 }
968 + }
969
970 # mounting backup shared folder
971
972 my $backupwkrec = $conf->get('backupwk');
973 my $login = $backupwkrec->prop('Login');
974 my $password = $backupwkrec->prop('Password');
975 - my $id = $backupwkrec->prop('Id') || $conf->get('SystemName')->value . "." . $conf->get('DomainName')->value;
976 + my $id = $backupwkrec->prop('Id') ||
977 + $conf->get('SystemName')->value . "." . $conf->get('DomainName')->value;
978 my $mntdir = $backupwkrec->prop('MountDir') || '/mnt/smb';
979 my $mounted;
980 my $VFSType = $backupwkrec->prop('VFSType') || 'smbfs';
981 @@ -3060,29 +3119,33 @@
982 my $smbshare = $backupwkrec->prop('SmbShare');
983 my $err;
984
985 - if ( $err = dmount($smbhost,$smbshare,$mntdir,$login,$password,$VFSType) )
986 - {
987 + if ($err = dmount($smbhost,$smbshare,$mntdir,$login,$password,$VFSType))
988 + {
989 esmith::cgi::genResult(
990 $q, $fm->localise('ERR_MOUNTING_SMBSHARE') . "\n" . $err
991 );
992 return;
993 - }
994 - elsif ( $VFSType ne 'usb' ) {$mounted = 1}
995 + }
996 + elsif ($VFSType ne 'usb')
997 + {
998 + $mounted = 1;
999 + }
1000
1001 # Test if backup subdirectory for our server
1002
1003 my $mntbkdir = $mntdir . "/$id";
1004 - unless ( -d $mntbkdir)
1005 - {
1006 - if ($mounted) {
1007 + unless (-d $mntbkdir)
1008 + {
1009 + if ($mounted)
1010 + {
1011 system("/bin/umount $mntdir") == 0
1012 or die($fm->localise('ERR_WHILE_UNMOUNTING'),"\n");
1013 - }
1014 + }
1015 esmith::cgi::genResult(
1016 $q, $fm->localise('ERR_NO_HOST_DIR'.$id)
1017 );
1018 return;
1019 - }
1020 + }
1021
1022 # backup is online, restoring now
1023
1024 @@ -3140,16 +3203,15 @@
1025 $restorerr = system ("/usr/bin/dar_manager -B $mntbkdir/dar-catalog -e '-N -R / -w' -r @restorelist");
1026 }
1027
1028 - if ($mounted) {
1029 + if ($mounted)
1030 + {
1031 system("/bin/umount $mntdir") == 0
1032 or die($fm->localise('ERR_WHILE_UNMOUNTING'),"\n");
1033 - }
1034 + }
1035
1036 exit(0);
1037 }
1038 -
1039 return;
1040 -
1041 }
1042
1043 sub performReboot ()
1044 @@ -3320,21 +3382,27 @@
1045
1046 my ($host,$share,$mountdir,$login,$password,$VFSType) = @_;
1047
1048 - if ($VFSType eq 'cifs'){
1049 + if ($VFSType eq 'cifs')
1050 + {
1051 return ( qx(/bin/mount -t cifs $host:$share $mountdir -o user=$login,pass=$password) );
1052 - }
1053 - elsif ($VFSType eq 'smbfs'){
1054 + }
1055 + elsif ($VFSType eq 'smbfs')
1056 + {
1057 return ( qx(/bin/mount -t smbfs //$host/$share $mountdir -o username=$login,password=$password,dmask=777,fmask=777,ip=$host 2>&1) );
1058 - }
1059 - elsif ($VFSType eq 'nfs'){
1060 + }
1061 + elsif ($VFSType eq 'nfs')
1062 + {
1063 return ( qx(/bin/mount -t nfs -o nolock $host:/$share $mountdir 2>&1) );
1064 - }
1065 - elsif ($VFSType eq 'usb'){
1066 + }
1067 + elsif ($VFSType eq 'usb')
1068 + {
1069 $_[2] = "/" . $share;
1070 return
1071 - }
1072 - else {return ("Error while mounting $host/$share : $VFSType not supported.\n")}
1073 -
1074 + }
1075 + else
1076 + {
1077 + return ("Error while mounting $host/$share : $VFSType not supported.\n");
1078 + }
1079 }
1080
1081 __DATA__

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed