Guest User

Untitled

a guest
Jul 21st, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. #!/usr/bin/perl
  2.  
  3. use strict;
  4. use warnings;
  5. use File::Find::Rule;
  6. use File::Basename qw/basename dirname/;
  7. use Data::Dumper;
  8.  
  9.  
  10. my $dir = 'data';
  11. my %server_w_log = map { my $tempfile = basename $_; $tempfile => $_ } File::Find::Rule->directory->name( qr/.*\.(mw|um).*/ )->in($dir);
  12. my %server_w_dir = map { my $tempfile = basename $_; $tempfile => $_ } File::Find::Rule->directory->name( qr/Microsoft\sSQL\sServer/i )->in($dir);
  13.  
  14. my @backups;
  15. for(keys %server_w_log) {
  16. push( @backups,[ File::Find::Rule->file->name( qr/.*\.(bak|BAK)$/ )->in("$server_w_log{$_}/daily.0")] );
  17. my $log = "$server_w_log{$_}/daily.0/C/maintenanceplan.log";
  18. if ( -f $log ) { $server_w_log{$_} = $log; compare_db_w_log($log,$_);} else { print "$log none existing\n"; }
  19. }
  20. for(keys %server_w_dir) {
  21. my ($server) = (split('/',$server_w_dir{$_}))[2];
  22. print "\n\t$server had $server_w_dir{$_} directory \n";
  23. }
  24.  
  25. sub compare_db_w_log {
  26. my ($logfile, $server) = @_;
  27. my %hash;
  28.  
  29. open(LOG, '<', $logfile) or warn "can't open $logfile $!\n";
  30. while(<LOG>) {
  31. my ($db) = (split(':',$_))[0];
  32. push( @{ $hash{$server} },$db);
  33. }
  34. for(keys %hash) {
  35. print "SERVER: $_ hash these DB's backup:\n";
  36. for(@{ $hash{$_} } ) {
  37. print $_,"\n";
  38. }
  39. }
  40. }
Add Comment
Please, Sign In to add comment