X-Git-Url: https://vcs.fsf.org/?p=exim.git;a=blobdiff_plain;f=src%2Fsrc%2Fexicyclog.src;h=20bf9fcd4ead3f9262bc73896fd18cf32aafc3bf;hp=c1af5d1793dc014af2bd0064c19ef155d03f9700;hb=260958d632506e2789fc632381f560f5a0c77ed7;hpb=5c3a378fcb71aaf98785a642e9b46489232eeb79 diff --git a/src/src/exicyclog.src b/src/src/exicyclog.src index c1af5d179..20bf9fcd4 100644 --- a/src/src/exicyclog.src +++ b/src/src/exicyclog.src @@ -1,7 +1,6 @@ #! /bin/sh -# $Cambridge: exim/src/src/exicyclog.src,v 1.9 2009/01/20 16:06:14 fanf2 Exp $ -# Copyright (c) 2006 University of Cambridge. +# Copyright (c) University of Cambridge, 1995 - 2015 # See the file NOTICE for conditions of use and distribution. # This script takes the following command line arguments: @@ -73,6 +72,11 @@ while [ $# -gt 0 ] ; do -k) keep=$2 shift ;; + --version) + echo "`basename $0`: $0" + echo "build: EXIM_RELEASE_VERSIONEXIM_VARIANT_VERSION" + exit 0 + ;; *) echo "** exicyclog: unknown option $1" exit 1 ;; @@ -233,16 +237,16 @@ $b # Now do the job. First remove the files that have "fallen off the bottom". # Look for both the compressed and uncompressed forms. -if [ $keep -lt 10 ]; then keept=0$keep; else keept=$keep; fi; +if [ $keep -lt 10 ]; then rotation=0$keep; else rotation=$keep; fi; -if [ -f $mainlog.$keept ]; then $rm $mainlog.$keept; fi; -if [ -f $mainlog.$keept.$suffix ]; then $rm $mainlog.$keept.$suffix; fi; +if [ -f $mainlog.$rotation ]; then $rm $mainlog.$rotation; fi; +if [ -f $mainlog.$rotation.$suffix ]; then $rm $mainlog.$rotation.$suffix; fi; -if [ -f $rejectlog.$keept ]; then $rm $rejectlog.$keept; fi; -if [ -f $rejectlog.$keept.$suffix ]; then $rm $rejectlog.$keept.$suffix; fi; +if [ -f $rejectlog.$rotation ]; then $rm $rejectlog.$rotation; fi; +if [ -f $rejectlog.$rotation.$suffix ]; then $rm $rejectlog.$rotation.$suffix; fi; -if [ -f $paniclog.$keept ]; then $rm $paniclog.$keept; fi; -if [ -f $paniclog.$keept.$suffix ]; then $rm $paniclog.$keept.$suffix; fi; +if [ -f $paniclog.$rotation ]; then $rm $paniclog.$rotation; fi; +if [ -f $paniclog.$rotation.$suffix ]; then $rm $paniclog.$rotation.$suffix; fi; # Now rename all the previous old files by increasing their numbers by 1. # When the number is less than 10, insert a leading zero. @@ -251,7 +255,7 @@ count=$keep if [ $count -lt 10 ]; then countt=0$count; else countt=$count; fi while [ $count -gt 1 ]; do - old=`expr $count - 1` + old=`expr -- $count - 1` if [ $keep -gt 99 ]; then if [ $old -lt 10 ]; then oldt=00$old elif [ $old -lt 100 ]; then oldt=0$old @@ -283,28 +287,34 @@ done if [ $keep -gt 99 ]; then first=001; else first=01; fi +# Grab our pid ro avoid race in file creation +ourpid=$$ + if [ -f $mainlog ]; then $mv $mainlog $mainlog.$first $chown $user:$group $mainlog.$first - $touch $mainlog - $chown $user:$group $mainlog - $chmod 640 $mainlog + $touch $mainlog.$ourpid + $chown $user:$group $mainlog.$ourpid + $chmod 640 $mainlog.$ourpid + $mv $mainlog.$ourpid $mainlog fi if [ -f $rejectlog ]; then $mv $rejectlog $rejectlog.$first $chown $user:$group $rejectlog.$first - $touch $rejectlog - $chown $user:$group $rejectlog - $chmod 640 $rejectlog + $touch $rejectlog.$ourpid + $chown $user:$group $rejectlog.$ourpid + $chmod 640 $rejectlog.$ourpid + $mv $rejectlog.$ourpid $rejectlog fi if [ -f $paniclog ]; then $mv $paniclog $paniclog.$first $chown $user:$group $paniclog.$first - $touch $paniclog - $chown $user:$group $paniclog - $chmod 640 $paniclog + $touch $paniclog.$ourpid + $chown $user:$group $paniclog.$ourpid + $chmod 640 $paniclog.$ourpid + $mv $paniclog.$ourpid $paniclog fi # Now scan the (0)02 and later files, compressing where necessary, and @@ -334,7 +344,7 @@ while [ $count -le $keep ]; do $chown $user:$group $paniclog.$countt.$suffix fi - count=`expr $count + 1` + count=`expr -- $count + 1` done # End of exicyclog