shell scripting - automating rotation of files in different
	directories
    Matthew D. Fuller 
    fullermd at over-yonder.net
       
    Thu Jun 12 12:15:34 PDT 2003
    
    
  
On Thu, Jun 12, 2003 at 02:58:32PM -0400 I heard the voice of
Dave [Hawk-Systems], and lo! it spake thus:
> For example,
> <brutally pseudo script>
> for($i=30; $i>0;$1--){ # 30 days is maximum retained
> 	for LOG in `ls /users/*/logs/ | grep .$i'`; do
> 		# move any of the previous logs into the current existing
> 		# so that we don't add to number of logs per user
> 		$prevLOG = strreplace(($i-1)($i) on $LOG)
> 		mv $prevLOG $LOG
> 	done
> )
> </brutally pseudoscript>
> 
> Am thinking that the shell script will need to drop to awk to perform the
> disection of the log number extensions...  any thoughts on this/easier methods
> before I sit down and devote some time to it?
You want jot(1) and expr(1).
Something along the lines of:
for i in `jot 29 29 1`; do
    if [ -r /some/dir/log.${i} ] ; then
        mv -f /some/dir/log.${i} /some/dir/log.`expr "${i}" + 1`
    fi
done
(more simplistic than yours, since it doesn't recurse across directories,
but the idea gets across)
-- 
Matthew Fuller     (MF4839)   |  fullermd at over-yonder.net
Systems/Network Administrator |  http://www.over-yonder.net/~fullermd/
"The only reason I'm burning my candle at both ends, is because I
      haven't figured out how to light the middle yet"
    
    
More information about the freebsd-questions
mailing list