aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xcleaner.in30
1 files changed, 22 insertions, 8 deletions
diff --git a/cleaner.in b/cleaner.in
index a35b605..1db87c1 100755
--- a/cleaner.in
+++ b/cleaner.in
@@ -67,6 +67,15 @@ case $# in
exit 1;;
esac
+remote=${dir%%:*}
+if [ "$remote" != "$dir" ]; then
+ beam_rsh="${backup_rsh:-ssh} $remote"
+ localdir=${dir#*:}
+else
+ beam_rsh=
+ localdir=$dir
+fi
+
thisweek=$(date +%U)
# Warning: do not use shell arithmetic expansions on week numbers,
@@ -81,23 +90,28 @@ fi
$verbose \# removing from $dir files ending in $suffix and older than week $lastweek
if [ -z "$suffix" ]; then
- find $dir -maxdepth 1 -type f -printf '%f\n'
+ beam_exec find $localdir -maxdepth 1 -type f -printf '%f>n'
else
- find $dir -maxdepth 1 -type f -name "*$suffix" -printf '%f\n'
+ beam_exec find $localdir -maxdepth 1 -type f -name "*$suffix" -printf '%f>n'
fi |
while read name
do
- $verbose \# considering $name
week=$(expr "$name" : '.*-\([0-9][0-9]*\)-[0-9][0-9]*-[0-9][0-9]*.*$')
if [ $thisweek -ge $week ]; then
if [ $(expr $thisweek - $week) -gt $retainweeks ]; then
- $verbose \# removing $name
- $dry_run rm $dir/$name
+ echo $localdir/$name
fi
else
if [ $(expr $thisweek + 54 - $week) -gt $retainweeks ]; then
- $verbose \# removing $name
- $dry_run rm $dir/$name
+ echo $localdir/$name
fi
fi
- done
+ done |
+ if [ -z "$dry_run" ]; then
+ beam_exec xargs --no-run-if-empty rm
+ else
+ while read name
+ do
+ echo \# rm $name
+ done
+ fi

Return to:

Send suggestions and report system problems to the System administrator.