LogRotate () { # USAGE - LogRotate [files to keep] [size] export LOG=scpp-wm.log if [[ $# -ne 2 ]] ; then KEEP=5 SIZE=5242880 else KEEP=$1 SIZE=$(echo "$2 * k" | bc) fi if [[ $KEEP -gt 10 ]] ; then echo "Max amount of files to keep is 10" return 1 fi for T_LOG in ${LOG}.* ; do cat $T_LOG >> tmp1-${LOG} done split -a 1 -b $SIZE -d tmp1-${LOG} ${LOG}. 2> /dev/null P_CNT=0 CNT=1 while [[ $CNT -le $KEEP ]] ; do mv ${LOG}.${P_CNT} tmp.${LOG}.$CNT let CNT=CNT+1 let P_CNT=P_CNT+1 done rm ${LOG}* rm tmp1-${LOG} rename 'tmp.' '' tmp.${LOG}.? } LogRotate $1 $2
Blog is moving
My blog is moving to http://victormendonca.com/blog/. If you are looking for a specific or older post you are in the right place Otherwise check out my new page for more up to date content.
Friday, November 29, 2013
Another Simple Bash Function for Log Rotation Based on Size
As a follow up to my previous post, "Simple Bash Log Rotate Function", here's another function to rotate your logs. The difference is that this function allows you to specify as parameters how many files to keep and how big the files should be (in Mb).
Labels:
Shell Tips
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment