diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2014-09-01 14:23:13 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2014-09-01 14:23:13 +0300 |
commit | aa48c0113be59350159788f9efd43d8736e87dcb (patch) | |
tree | 05f6ac39705efbf5acdd86e1629749c80f402409 | |
parent | 1c1930ac5260847b9b6e63caf3ba844be8a7d41f (diff) | |
download | beam-aa48c0113be59350159788f9efd43d8736e87dcb.tar.gz beam-aa48c0113be59350159788f9efd43d8736e87dcb.tar.bz2 |
Clean up remote files
* cleaner.in: Detect if the files are remote, use beam_exec
to remove them.
-rwxr-xr-x | cleaner.in | 30 |
1 files changed, 22 insertions, 8 deletions
@@ -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 |