Patch for fcopy

Sabine Schmidt sabine.schmidt at desy.de
Wed Nov 10 13:57:03 CET 2010


Hello,

the function set_mode{} of the file fcopy always change the values time, 
uid, guid and modes of the target file equal whether the values are 
different or not.
And to change this values although this are equal produce a false alarm 
in the IDS.

So I have adapted the function and now the script only change the values 
when one of this are really difficult.

Here is the patch:
--- fcopy.orig    2010-11-03 14:07:57.000000000 +0100
+++ fcopy    2010-11-10 12:44:29.000000000 +0100
@@ -250,9 +250,31 @@
    # use the values from the source file
    my ($sourcefile,$destfile,$class) = @_;
    my ($uid,$gid,$owner,$group,$mode);
+
    # get mtime,uid,gid,mode from source file
    my ($stime, at defmodes) = (stat("$sourcefile/$class"))[9,4,5,2];

+  # get mtime,uid,gid,mode from destination file
+  my ($dtime, at ddefmodes) = (stat("$destfile"))[9,4,5,2];
+
+  # compare time,uid,gid and mode of source file and target file
+  # if different: change the values
+  my $change = "false";
+
+  if ($stime == $dtime) {
+    if (($ddefmodes[0] == $defmodes[0]) && ($ddefmodes[1] == 
$defmodes[1]) && ($ddefmodes[2] == $defmodes[2])){
+      #  do nothing
+    }
+    else {
+      $change = "true";
+    }
+  }
+  else
+  {
+      $change = "true";
+  }
+
+  if ($change eq "true"){
      if ($modeset) { # use -m values
        ($owner,$group,$mode) = @opt_modes;
      } elsif (-f "$sourcefile/file-modes"){
@@ -267,7 +289,7 @@
      chown ($uid,$gid,     $destfile) || ewarn("chown $owner $group 
$destfile failed. $!");
      chmod ($mode,         $destfile) || ewarn("chmod $mode $destfile 
failed. $!");
      utime ($stime,$stime, $destfile) || ewarn("utime for $destfile 
failed. $!");
-
+  }
  }
  # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  sub check_mopt {

Could you please include this in the file fcopy?

Regards,
Sabine

--

#########################################################################
#
# Sabine Schmidt
# (IT, Systems&  Operations)
#
# Deutsches Elektronen-Synchroton	Tel.: 040/(8998-)2550
# Notkestraße 85			eMail: sabine.schmidt at desy.de
# 22607 Hamburg
#
########################################################################



More information about the linux-fai-devel mailing list