--- a/bin/ftbackup Mon Aug 01 16:30:12 2011 +0200
+++ b/bin/ftbackup Tue Aug 02 11:26:26 2011 +0200
@@ -208,10 +208,11 @@
foreach (reverse sort $ftp->ls) {
next if /\.tmp-\d+$/;
next if not /^(?<date>.*)\.(?<level>\d+)$/;
- next if not $ftp->size(0) and str2time($+{date}) < $^T;
+ next if not $ftp->size($_) and str2time($+{date}) < $^T;
$last[$+{level}] = str2time $+{date};
}
}
+ ### @last
# for safety we check if there is really a full dump not older than xxx days
if ($dev->{level} > 0) {
@@ -247,8 +248,8 @@
LOGDIE "failed system command: $_\n" if $?;
$dev->{cleanup} = sub {
- system "lvdisplay $snap &>/dev/null"
- . " && lvremove -f $snap >/dev/null";
+ system "lvdisplay $snap >/dev/null 2>&1"
+ . " && lvremove -f $snap >/dev/null 2>&1";
};
push @AT_EXIT, $dev->{cleanup};
@@ -307,7 +308,7 @@
while read; do
test "\$REPLY" = "#-- START" \\
- && exec openssl enc -d -blowfish "\$@"
+ && exec openssl enc -d -aes-128-cbc "\$@"
done <\$input
exit
#-- START
@@ -318,7 +319,7 @@
exec
"dump -$dev->{level} -L $label -f- -u -z$cf{COMPRESSION_LEVEL} -E $dev->{exclude}{inodes} $dev->{dump}"
- . "| openssl enc -pass env:key -salt -blowfish";
+ . "| openssl enc -pass env:key -salt -aes-128-cbc";
die "Can't exec dumper\n";
};
@@ -518,7 +519,7 @@
open(my $f, "+>>" => $file) or LOGDIE "Can't open $file: $!\n";
seek($f, 0, 0);
my $_ = join "", <$f>;
- s/^$from\s/$to /mg;
+ s/^\Q$from\E\s/$to /mg;
truncate($f, 0);
print $f $_;
close($f);
@@ -526,14 +527,19 @@
sub real_device($) {
my $dev = shift;
+ my $rdev;
if ($dev ~~ /^(LABEL|UUID)=/) {
# NOTE: dump is able to handle LABEL=... too, but I think
# it's more easy for recovery to know the real device
- chomp($dev = `blkid -c /dev/null -o device -t '$dev'`);
+ $rdev = `blkid -c /dev/null -o device -t '$dev'`;
}
- $dev = realpath($dev);
+ else {
+ $rdev = `blkid -c /dev/null -o device '$dev'`;
+ }
+ chomp $rdev if $rdev;
+ return $rdev;
}
sub devno($) {
@@ -819,7 +825,7 @@
=item KEY
-The encryption key to use. (We use symmetric blowfish encryption currently.)
+The encryption key to use. (We use symmetric aes-128-cbc encryption currently.)
=item FTP_HOST