projects
/
BackupPC.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
archive_backup renamed to archive_backup_parts
[BackupPC.git]
/
bin
/
BackupPC_ASA_PostArchive_Update
diff --git
a/bin/BackupPC_ASA_PostArchive_Update
b/bin/BackupPC_ASA_PostArchive_Update
index
3ffb763
..
93478c9
100755
(executable)
--- a/
bin/BackupPC_ASA_PostArchive_Update
+++ b/
bin/BackupPC_ASA_PostArchive_Update
@@
-120,6
+120,13
@@
my $sth_inc_size = $dbh->prepare(qq{
where id = ?
});
where id = ?
});
+sub read_only {
+ my $full = shift;
+ my $perm = (stat $full)[2] & 0444;
+ warn sprintf("chmod %03o %s\n",$perm,$full);
+ chmod $perm, $full || die $!;
+}
+
sub check_archive {
my ($host,$num) = @_;
warn "# check_archive $host $num";
sub check_archive {
my ($host,$num) = @_;
warn "# check_archive $host $num";
@@
-140,8
+147,12
@@
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_only $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
+161,7
@@
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;
+ read_only "$Conf{ArchiveDest}/$path" if $read_protect;
}
# depending on expected returned value this is used like:
}
# depending on expected returned value this is used like:
@@
-183,16
+195,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
+224,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
+276,8
@@
sub check_archive {
$items++;
$tar_size_inarc += $entry->size;
$items++;
$tar_size_inarc += $entry->size;
- if ($tar_size_inarc > $Conf{
MaxArchiveFile
Size}) {
- print ", part $filename is too big $tar_size_inarc > $Conf{
MaxArchiveFile
Size}\n";
+ if ($tar_size_inarc > $Conf{
ArchiveMedia
Size}) {
+ print ", part $filename is too big $tar_size_inarc > $Conf{
ArchiveMedia
Size}\n";
return 0;
}
return 0;
}
@@
-298,10
+311,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(