equal
deleted
inserted
replaced
24 use constant CIPHER => "aes-128-cbc"; |
24 use constant CIPHER => "aes-128-cbc"; |
25 |
25 |
26 sub get_devsize; |
26 sub get_devsize; |
27 sub get_devname; |
27 sub get_devname; |
28 sub save; |
28 sub save; |
|
29 |
29 |
30 |
30 $SIG{INT} = sub { die "Got INT\n" }; |
31 $SIG{INT} = sub { die "Got INT\n" }; |
31 |
32 |
32 my %o = ( |
33 my %o = ( |
33 compress => undef, |
34 compress => undef, |
117 host => hostname, |
118 host => hostname, |
118 filesystem => $src, |
119 filesystem => $src, |
119 blocksize => $o{blocksize}, |
120 blocksize => $o{blocksize}, |
120 devsize => $size, |
121 devsize => $size, |
121 timestamp => $o{now}, |
122 timestamp => $o{now}, |
122 datetime => strftime(DATEFMT => gmtime $o{now}), |
123 datetime => strftime(DATEFMT, gmtime $o{now}), |
123 (defined $o{comment} ? (comment => $o{comment}) : ()), |
124 (defined $o{comment} ? (comment => $o{comment}) : ()), |
124 encryption => $o{pass} ? CIPHER : "none", |
125 encryption => $o{pass} ? CIPHER : "none", |
125 }; |
126 }; |
126 |
127 |
127 open(my $in => $src); |
128 open(my $in => $src); |
218 say $index join "\n" => "# imager", |
219 say $index join "\n" => "# imager", |
219 (map { "$_: $index{META}{$_}" } sort(keys %{ $index{META} })), |
220 (map { "$_: $index{META}{$_}" } sort(keys %{ $index{META} })), |
220 "", |
221 "", |
221 @{ $index{BLOCKS} }; |
222 @{ $index{BLOCKS} }; |
222 close($index); |
223 close($index); |
223 rename $index->filename => "$idx/" . strftime(DATEFMT => gmtime $o{now}); |
224 rename $index->filename => "$idx/" . strftime(DATEFMT, gmtime $o{now}); |
224 |
225 |
225 say "# $src DONE (runtime " . (time() - $^T) . "s)"; |
226 say "# $src DONE (runtime " . (time() - $^T) . "s)"; |
226 say "# $src WRITTEN $stats{written}, SKIPPED $stats{skipped} blocks"; |
227 say "# $src WRITTEN $stats{written}, SKIPPED $stats{skipped} blocks"; |
227 say "# $src SAVINGS " |
228 say "# $src SAVINGS " |
228 . sprintf "%3d%%" => 100 * |
229 . sprintf "%3d%%" => 100 * |