diff -Nur -x '*.orig' -x '*.rej' e-smith-samba-1.14.1/root/etc/e-smith/events/actions/shadow-copy-rotate mezzanine_patched_e-smith-samba-1.14.1/root/etc/e-smith/events/actions/shadow-copy-rotate --- e-smith-samba-1.14.1/root/etc/e-smith/events/actions/shadow-copy-rotate 2007-12-15 08:53:08.000000000 -0700 +++ mezzanine_patched_e-smith-samba-1.14.1/root/etc/e-smith/events/actions/shadow-copy-rotate 2008-03-13 13:31:18.000000000 -0600 @@ -28,12 +28,20 @@ my $snapfmt = '@GMT-%Y.%m.%d-%H.%M.%S'; # Create list of ibays and users to shadow -my $ibays = join ',', map { $_->key } grep { ($_->prop('ShadowCopy') || 'enabled') ne 'disabled' } $adb->ibays(); -my $users = join ',', map { $_->key } grep { ($_->prop('ShadowCopy') || 'enabled') ne 'disabled' } $adb->users(); +my ($ibays, $users, $link) = ('','',''); +my @ibays = grep { ($_->prop('ShadowCopy') || 'enabled') ne 'disabled' } $adb->ibays(); +$ibays = "$filesdir/./ibays/{" . join(',', map { $_->key } @ibays) . "}/" if scalar @ibays > 1; +$ibays = "$filesdir/./ibays/" . $ibays[0]->key . "/" if scalar @ibays == 1; +my @users = grep { ($_->prop('ShadowCopy') || 'enabled') ne 'disabled' } $adb->users(); +$users = "$filesdir/./users/{" . join(',', map { $_->key } @users) . "}/home/" if scalar @users > 1; +$users = "$filesdir/./users/" . $users[0]->key . "/home/" if scalar @users == 1; +$link = "--link-dest ../1" if -d "$shadowdir/1"; # Sync directories to shadow directory -system("rsync -aHmR --partial --exclude '\@GMT-*' --link-dest ../1 " . - "$filesdir/./ibays/{$ibays}/ $filesdir/./users/{$users}/home/ $shadowdir/0/") == 0 || die "Couldn't sync directories"; +if ( $ibays || $users) { + system("rsync -aHmR --partial --exclude '\@GMT-*' $link $ibays $users $shadowdir/0/") == 0 + or die "Couldn't sync directories"; +} # Shift directories using geometric roll-off (only if different) if ( -d "$shadowdir/1" ) {