projects
/
BackupPC.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
read protect tar dumps after md5sum calculation
[BackupPC.git]
/
bin
/
BackupPC_ASA_PostArchive_Update
diff --git
a/bin/BackupPC_ASA_PostArchive_Update
b/bin/BackupPC_ASA_PostArchive_Update
index
8d69bf6
..
475a477
100755
(executable)
--- a/
bin/BackupPC_ASA_PostArchive_Update
+++ b/
bin/BackupPC_ASA_PostArchive_Update
@@
-140,8
+140,11
@@
sub check_archive {
my $md5_path = "$Conf{ArchiveDest}/$host.$num.md5";
unlink $md5_path if -s $md5_path == 0; # fix empty
my $md5_path = "$Conf{ArchiveDest}/$host.$num.md5";
unlink $md5_path if -s $md5_path == 0; # fix empty
+ my $read_protect = 0;
+
if ( ! -e $md5_path ) {
system_ok "cd $Conf{ArchiveDest} && /usr/bin/md5sum $host.$num.* > $md5_path";
if ( ! -e $md5_path ) {
system_ok "cd $Conf{ArchiveDest} && /usr/bin/md5sum $host.$num.* > $md5_path";
+ $read_protect = 1;
} else {
system_ok "cd $Conf{ArchiveDest} && /usr/bin/md5sum -c $md5_path" if $opt->check;
}
} else {
system_ok "cd $Conf{ArchiveDest} && /usr/bin/md5sum -c $md5_path" if $opt->check;
}
@@
-150,6
+153,12
@@
sub check_archive {
foreach ( split(/\n/, read_file "$Conf{ArchiveDest}/$host.$num.md5" ) ) {
my ( $md5, $path ) = split(/\s+/,$_);
$md5sum->{$path} = $md5;
foreach ( split(/\n/, read_file "$Conf{ArchiveDest}/$host.$num.md5" ) ) {
my ( $md5, $path ) = split(/\s+/,$_);
$md5sum->{$path} = $md5;
+ if ( $read_protect ) {
+ my $full = "$Conf{ArchiveDest}/$path";
+ my $perm = (stat $full)[2] & 0444;
+ warn sprintf("chmod %03o %s\n",$perm,$full);
+ chmod $perm, $full;
+ }
}
# depending on expected returned value this is used like:
}
# depending on expected returned value this is used like:
@@
-183,16
+192,16
@@
sub check_archive {
}
sub check_part {
}
sub check_part {
- my ($host, $num, $part_nr, $tar_size, $size, $md5, $items) = @_;
+ my ($host, $num, $part_nr, $tar_size, $size, $md5, $items
, $filename
) = @_;
my $backup_id = get_backup_id($host, $num);
my $sth_md5 = $dbh->prepare(qq{
select
my $backup_id = get_backup_id($host, $num);
my $sth_md5 = $dbh->prepare(qq{
select
- id, tar_size, size, md5, items
+ id, tar_size, size, md5, items
, filename
from backup_parts
from backup_parts
- where backup_id = ? and part_nr = ?
+ where backup_id = ? and part_nr = ?
and filename = ?
});
});
- $sth_md5->execute($backup_id, $part_nr);
+ $sth_md5->execute($backup_id, $part_nr
, $filename
);
if (my $row = $sth_md5->fetchrow_hashref) {
return if (
if (my $row = $sth_md5->fetchrow_hashref) {
return if (
@@
-212,11
+221,12
@@
sub check_archive {
tar_size,
size,
md5,
tar_size,
size,
md5,
- items
- ) values (?,?,?,?,?,?)
+ items,
+ filename
+ ) values (?,?,?,?,?,?,?)
});
});
- $sth_insert->execute($backup_id, $part_nr, $tar_size, $size, $md5, $items);
+ $sth_insert->execute($backup_id, $part_nr, $tar_size, $size, $md5, $items
, $filename
);
$dbh->commit;
}
$dbh->commit;
}
@@
-263,8
+273,8
@@
sub check_archive {
$items++;
$tar_size_inarc += $entry->size;
$items++;
$tar_size_inarc += $entry->size;
- if ($tar_size_inarc > $Conf{Archive
Chunk
Size}) {
- print ", part $filename is too big $tar_size_inarc > $Conf{Archive
Chunk
Size}\n";
+ if ($tar_size_inarc > $Conf{Archive
Media
Size}) {
+ print ", part $filename is too big $tar_size_inarc > $Conf{Archive
Media
Size}\n";
return 0;
}
return 0;
}
@@
-298,10
+308,10
@@
sub check_archive {
my $items = 1;
$part_nr++;
my $items = 1;
$part_nr++;
- check_part($host, $num, $part_nr, $tar_size, $size, $md5, $items);
+ check_part($host, $num, $part_nr, $tar_size, $size, $md5, $items
, $filename
);
# round increment size to 2k block size
# round increment size to 2k block size
- $inc_size += int((
$size + 2048) /
2048);
+ $inc_size += int((
($size + 2048) / 2048 ) *
2048);
}
$sth_inc_size->execute(
}
$sth_inc_size->execute(