Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- use strict;
- use warnings;
- use File::Find::Rule;
- use File::Basename qw/basename dirname/;
- use Data::Dumper;
- my $dir = 'data';
- my %server_w_log = map { my $tempfile = basename $_; $tempfile => $_ } File::Find::Rule->directory->name( qr/.*\.(mw|um).*/ )->in($dir);
- my %server_w_dir = map { my $tempfile = basename $_; $tempfile => $_ } File::Find::Rule->directory->name( qr/Microsoft\sSQL\sServer/i )->in($dir);
- my @backups;
- for(keys %server_w_log) {
- push( @backups,[ File::Find::Rule->file->name( qr/.*\.(bak|BAK)$/ )->in("$server_w_log{$_}/daily.0")] );
- my $log = "$server_w_log{$_}/daily.0/C/maintenanceplan.log";
- if ( -f $log ) { $server_w_log{$_} = $log; compare_db_w_log($log,$_);} else { print "$log none existing\n"; }
- }
- for(keys %server_w_dir) {
- my ($server) = (split('/',$server_w_dir{$_}))[2];
- print "\n\t$server had $server_w_dir{$_} directory \n";
- }
- sub compare_db_w_log {
- my ($logfile, $server) = @_;
- my %hash;
- open(LOG, '<', $logfile) or warn "can't open $logfile $!\n";
- while(<LOG>) {
- my ($db) = (split(':',$_))[0];
- push( @{ $hash{$server} },$db);
- }
- for(keys %hash) {
- print "SERVER: $_ hash these DB's backup:\n";
- for(@{ $hash{$_} } ) {
- print $_,"\n";
- }
- }
- }
Add Comment
Please, Sign In to add comment