<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
Hi Stephen,
<div class=""><br class="">
</div>
<div class="">Thanks for the suggestion.  We thought about doing something similar to this but in the end I just ran a:</div>
<div class=""><br class="">
</div>
<div class="">rsync -aAvu /old/location /new/location</div>
<div class=""><br class="">
</div>
<div class="">And that seems to have updated the ACL’s on everything except the 910 modified files, which we’re dealing with in a manner similar to what you suggest below.  Thanks all…</div>
<div class=""><br class="">
</div>
<div class="">Kevin</div>
<div class=""><br class="">
<div>
<blockquote type="cite" class="">
<div class="">On May 10, 2017, at 12:51 PM, Stephen Ulmer <<a href="mailto:ulmer@ulmer.org" class="">ulmer@ulmer.org</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
If there’s only 13K files, and you don’t want to copy them, why use rsync at all?
<div class=""><br class="">
</div>
<div class="">I think your solution is:</div>
<div class="">
<ul class="MailOutline">
<li class="">check every restored for for an ACL</li><li class="">copy the ACL to the same file in the new file system </li></ul>
<div class=""><br class="">
</div>
<div class="">What about generating a file list and then just traversing it dumping the ACL from the restored file and adding it to the new file (after transforming the path). You could probably do the dump/assign with a pipe and not even write the ACLs down.
 You can even multi-thread the process if you have GNU xargs. Something like (untested):</div>
<div class=""><br class="">
</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>xargs -P num_cores_or_something ./helper_script.sh < list_of_files</div>
<div class=""><br class="">
</div>
<div class="">Where helper_script.sh is (also untested):</div>
<div class=""><br class="">
</div>
<div class="">        NEWPATH=$( echo $1 | sed -e ’s/remove/replace/' )</div>
<div class="">        getfacl $1 | setfacl $NEWPATH</div>
<div class=""><br class="">
</div>
<div class="">
<div class="">-- <br class="">
<div class="">
<div style="letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
Stephen<br class="">
<br class="">
<br class="">
</div>
</div>
<br class="">
<div class="">
<blockquote type="cite" class="">
<div class="">On May 10, 2017, at 11:52 AM, Buterbaugh, Kevin L <<a href="mailto:Kevin.Buterbaugh@vanderbilt.edu" class="">Kevin.Buterbaugh@Vanderbilt.Edu</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
Hi All,
<div class=""><br class="">
</div>
<div class="">We are using the patched version of rsync:</div>
<div class=""><br class="">
</div>
<div class="">
<div class="">rsync  version 3.0.9  protocol version 30</div>
<div class="">Copyright (C) 1996-2011 by Andrew Tridgell, Wayne Davison, and others.</div>
<div class="">Web site: <a href="http://rsync.samba.org/" class="">http://rsync.samba.org/</a></div>
<div class="">Capabilities:</div>
<div class="">    64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,</div>
<div class="">    socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,</div>
<div class="">    append, ACLs, xattrs, gpfs, iconv, symtimes</div>
<div class=""><br class="">
</div>
<div class="">rsync comes with ABSOLUTELY NO WARRANTY.  This is free software, and you</div>
<div class="">are welcome to redistribute it under certain conditions.  See the GNU</div>
<div class="">General Public Licence for details.</div>
<div class=""><br class="">
</div>
<div class="">to copy files from our old GPFS filesystem to our new GPFS filesystem.  Unfortunately, for one group I inadvertently left off the “-A” option when rsync’ing them, so it didn’t preserve their ACL’s.  The original files were deleted, but we were
 able to restore them from a backup taken on April 25th.</div>
<div class=""><br class="">
</div>
<div class="">I looked, but cannot find any option to rsync that would only update based on ACL’s / permissions.</div>
<div class=""><br class="">
</div>
<div class="">Out of 13,000+ files, it appears that 910 have been modified in the interim.  So what I am thinking of doing is rerunning the rsync from the restore directory to the new filesystem directory with the -A option.  I’ll test this with “—dry-run”
 first, of course.  I am thinking that this will update the ACL’s on all but the 910 modified files, which would then have to be dealt with on a case by case basis.</div>
<div class=""><br class="">
</div>
<div class="">Anyone have any comments on this idea or any better ideas?  Thanks!</div>
<div class=""><br class="">
</div>
<div class="">Kevin</div>
<div class="">
<div class="">—</div>
<div class="">Kevin Buterbaugh - Senior System Administrator</div>
<div class="">Vanderbilt University - Advanced Computing Center for Research and Education</div>
<div class=""><a href="mailto:Kevin.Buterbaugh@vanderbilt.edu" class="">Kevin.Buterbaugh@vanderbilt.edu</a> - (615)875-9633</div>
<div class=""><br class="">
</div>
<br class="Apple-interchange-newline">
</div>
<br class="">
</div>
</div>
_______________________________________________<br class="">
gpfsug-discuss mailing list<br class="">
gpfsug-discuss at <a href="http://spectrumscale.org/" class="">spectrumscale.org</a><br class="">
<a href="http://gpfsug.org/mailman/listinfo/gpfsug-discuss" class="">http://gpfsug.org/mailman/listinfo/gpfsug-discuss</a><br class="">
</div>
</blockquote>
</div>
<br class="">
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br class="">
</div>
</body>
</html>