Diff for /foxridge-archiver/archivecheck.pl between versions 1.2 and 1.8

version 1.2, 2004/11/30 12:39:51 version 1.8, 2017/03/16 17:00:43
Line 1 Line 1
 #!/usr/local/bin/perl -w  #!/usr/bin/perl -w
   
 use strict;  use strict;
   
Line 16  $|=1; Line 16  $|=1;
 #  #
   
 # program version  # program version
 my $version = "0.4 (30.11.2004)";  my $version = "0.4.5 (13.7.2009 ROC)";
   
 # read command line parameters  # read command line parameters
 my $args = parseargs;  my $args = parseargs;
Line 29  my $namespace = ""; Line 29  my $namespace = "";
   
 # archive name (archive-path element, usually == $docdir)  # archive name (archive-path element, usually == $docdir)
 my $archname;  my $archname;
 # archive storage date  
 my $archdate;  
   
   
 #######################################################  #######################################################
Line 126  sub read_resource_meta { Line 124  sub read_resource_meta {
     my $name = sstrip($fn->findvalue('child::name'));      my $name = sstrip($fn->findvalue('child::name'));
     my $path = sstrip($fn->findvalue('child::path'));      my $path = sstrip($fn->findvalue('child::path'));
     logger("DEBUG", "DIR: ($path)$name");      logger("DEBUG", "DIR: ($path)$name");
     my $f = ($path) ? "$path/$name" : "$name";      my $f = "$name";
       if (($path)&&($path ne '.')) {
           $f = "$path/$name";
       }
     $files{$f} = [$name];      $files{$f} = [$name];
     }      }
   
Line 204  sub run_query { Line 205  sub run_query {
     $archcmd .= " -description='$archname'";      $archcmd .= " -description='$archname'";
     $archcmd .= " '$dirquery'";      $archcmd .= " '$dirquery'";
   
       logger('INFO', "querying TSM server for $dirquery, please wait...");
     my $archcnt = 0;      my $archcnt = 0;
     print LOG "CMD: $archcmd\n";      print LOG "CMD: $archcmd\n";
     if (open ARCH, "$archcmd 2>&1 |") {      if (open ARCH, "$archcmd 2>&1 |") {
Line 322  sub compare_files { Line 324  sub compare_files {
         logger("ERROR", "archived $ft ($atime) is older than file on disk ($ftime)!");          logger("ERROR", "archived $ft ($atime) is older than file on disk ($ftime)!");
         $errcnt++;          $errcnt++;
         } else {          } else {
         logger("ERROR", "archived file $ft still on disk");          logger("WARNING", "archived file $ft still on disk");
         $errcnt++;          $warncnt++;
         }          }
     } else {      } else {
         logger("ERROR", "file on disk '$ft' is not in archive!");          logger("ERROR", "file on disk '$ft' is not in archive!");
Line 341  sub compare_files { Line 343  sub compare_files {
 logger("INFO", "archivecheck $version");  logger("INFO", "archivecheck $version");
   
 # make shure the right user is running this program  # make shure the right user is running this program
 my $user = getlogin;  my $user = getlogin || getpwuid($<) ;
 if (($user ne "archive")&&($user ne "root")) {  if (not (($user eq "archive")||($user eq "root"))) {
     logger("ABORT", "you must be archive or root user to run this program!");      logger("ABORT", "you must be archive or root user to run this program!");
     exit 1;      exit 1;
 }  }
Line 366  my %archived_files = (); Line 368  my %archived_files = ();
 my $archcnt = 0;  my $archcnt = 0;
 if ($docdir =~ /\/mpiwg\/archive\/data\/(.*)/) {  if ($docdir =~ /\/mpiwg\/archive\/data\/(.*)/) {
     # TSM needs two different paths because of historical mount points :-(      # TSM needs two different paths because of historical mount points :-(
     my $docdir1 = "/mpiwg/archive/data/";      # ...doesn't work anymore since old filespace was renamed (13.7.2009)
     $archcnt += run_query($docdir1, \%archived_files);  #    my $docdir1 = "/mpiwg/archivedataold/";
   #    $archcnt += run_query($docdir1, \%archived_files);
     my $docdir2 = "/mpiwg/archive/";      my $docdir2 = "/mpiwg/archive/";
     $archcnt += run_query($docdir2, \%archived_files);      $archcnt += run_query($docdir2, \%archived_files);
 } else {  } else {
Line 399  logger("INFO", "$warncnt warnings"); Line 402  logger("INFO", "$warncnt warnings");
 logger("INFO", "$errcnt errors");  logger("INFO", "$errcnt errors");
 if ($errcnt == 0) {  if ($errcnt == 0) {
     logger("DONE", "" . (scalar keys %archived_files) . " archived files OK");      logger("DONE", "" . (scalar keys %archived_files) . " archived files OK");
       exit 0;
 } else {  } else {
     logger("ABORT", "there were $errcnt errors!!");      logger("ABORT", "there were $errcnt errors!!");
     exit 1;      exit 1;

Removed from v.1.2  
changed lines
  Added in v.1.8


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>