shell scripting - automating rotation of files in different directories

Dave [Hawk-Systems] dave at hawk-systems.com
Thu Jun 12 11:58:36 PDT 2003


have looked at a couple of the ports for log rotation and such, but none seem to
come close to the simplicity and complexity of what I am looking for.

have user directories and log files in each directory... each user requests to
have 1 day ro 30 days of logs made available for them to download at any given
time.

Looking for a way to simply touch or delete log files and have the script
identify the correct rotation to.

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>

this way, if a user wants more logs, just touch (create empty) logs files, and
the next time the script runs it will rotate all them...  need less, simply
delete the unneeded log files and they will not be rotated into.

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?

thanks

Dave





More information about the freebsd-questions mailing list