}
$bpc->ConfigRead($ArchiveHost);
-if ( ! @HostFilter ) {
- @HostFilter = keys %$Hosts;
-}
+my(@HostList, @BackupList);
-warn "archiving hosts ",dump(@HostFilter);
-my(@HostList, @BackupList);
-foreach ( @HostFilter ) {
- my ($host,$num) = split(/:/,$_,2);
- if ( !defined($Hosts->{$host}) ) {
- print(STDERR "$0: host $host doesn't exist... quitting\n");
- exit(1);
- }
- my @backups = $bpc->BackupInfoRead($host);
- if ( !@backups ) {
- warn "$0: host $host doesn't have any backups... skipping\n";
- next;
- }
+my $host_nums;
+
+foreach my $host ( keys %$Hosts ) {
+ my @backups = $bpc->BackupInfoRead($host);
+ if ( !@backups ) {
+ warn "$0: host $host doesn't have any backups... skipping\n";
+ next;
+ }
my $all_backup_numbers;
$all_backup_numbers->{ $_->{num} }++ foreach @backups;
0;
}
- warn "# $host all_backup_numbers = ",dump($all_backup_numbers) if $debug;
+ warn "# $host all_backup_numbers = ",dump($all_backup_numbers),"\n";
- my @backup_nums =
+ $host_nums->{$host} = [
sort
grep { $all_backup_numbers->{$_} }
- keys %$all_backup_numbers;
+ keys %$all_backup_numbers
+ ];
+}
- foreach my $num ( @backup_nums ) {
+foreach ( @HostFilter ) {
+ my ($host,$num) = split(/:/,$_,2);
+ if ( !defined($Hosts->{$host}) ) {
+ print(STDERR "$0: host $host doesn't exist... quitting\n");
+ exit(1);
+ }
+ if ( defined $num ) {
warn "+ $host $num\n";
push(@HostList, $host);
push(@BackupList, $num);
+ } else {
+ foreach my $num ( @{ $host_nums->{$host} } ) {
+ warn "+ $host $num\n";
+ push(@HostList, $host);
+ push(@BackupList, $num);
+ }
}
}
+if ( ! @HostFilter ) {
+ foreach my $host ( keys %$host_nums ) {
+ foreach my $num ( @{ $host_nums->{$host} } ) {
+ warn "+ $host $num\n";
+ push(@HostList, $host);
+ push(@BackupList, $num);
+ }
+ }
+}
+
+warn "# HostList=",dump(@HostList),"\n";
+warn "# BackupList=",dump(@BackupList),"\n";
+
$dbh->disconnect;
my $ReqFileName;