快速业务通道

我的一个学生在运维工作中写的自动日志清理脚本程序

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-05

本文是我的一个学生在运维工作中写的自动日志清理脚本程序,我这里不评价该shell脚本写的好与坏,只是发出来,和大家做一个分享,如果能给大家带来一点点思路上的参考就够了.

自动日志清理脚本程序

#!/bin/sh
##########################################################
#created by ydds #
#date 2011-4-25 #
#function log clear default save 7 days logs #
#when hard disk space achieve 80%, automatic save 3 days #
#when hard disk space achieve 90%,save only LOG today #
#when only today log hard disk space achieve >95% #
# clear today log #
##########################################################
set -x

oldboyWarnValue=80
oldboyCriticalValue=90
oldboyCC=95
nohupFlag=0

# $1 must be directory
if [ $# -ne 2 ]||[ -z $1 ]||[ ! -d $1 ];then
echo "Uage:logClear /home/oldboy/apachelogs /dev/xvda1"
exit 1
fi

#clear log path
logPath=$1

devstr=$(df|awk ''///{print $1}''|sed -n ''///p'')
echo "${devstr}"|grep -q "$2"
[ $? -ne 0 ]&&exit 1

# hard disk name
oldboyName=$2

scriptLog=/server/script/clearLog.log

#clear nohuplog
clearNohupLog()
{
if [ ${nohupFlag} -ne 1 ];then
# check nulup.log >1G clear
fileNohupLog="${logPath}/../nohup.log"
NohupSize=$(du ${fileNohupLog}|awk ''{print $1/1024/1024}''|awk -F "." ''{print $1}'')
echo "check nohup.log size: $(du -h ${fileNohupLog}|awk ''{print $1}'')">>${scriptLog}
if [ -f ${fileNohupLog} ];then
if [ ${NohupSize} -ge 1 ]||[ $1 -eq 1 ];then
echo "">${fileNohupLog}
if [ $? -eq 0 ];then
echo "clear nohup.log ok!">>${scriptLog}
fi
fi
fi
fi
}

#hard disk used
oldboyUsed=$(/bin/df ${oldboyName}|tail -1|awk ''{print $5}''|awk -F "%" ''{print $1}'')

echo "[$(date %Y-%m-%d %H:%M:%S)]check hard disk used start....">>${scriptLog}
echo "check current hard disk space used ${oldboyUsed}%">>${scriptLog}

#clear nohup.log >warning
if [ ${oldboyUsed} -ge ${oldboyWarnValue} ];then
echo "hard disk used ${oldboyUsed}% > ${oldboyWarnValue}%,start clear nohup.log..">>${scriptLog}
clearNohupLog 1
nohupFlag=1
fi

if [ ${nohupFlag} -eq 1 ];then
#hard disk used
echo "after deal nohup.log ,check hard disk again...">>${scriptLog}
oldboyUsed=$(/bin/df ${oldboyName}|tail -1|awk ''{print $5}''|awk -F "%" ''{print $1}'')
fi

#save 7,3 days logs
clearnDayLogs()
{
# cd tmp directory
cd /tmp

if [ $1 -ne 1 ];then
if [ -d ${logPath} ];then
cd ${logPath}
find . -type f -mtime $1 |xargs rm -f

if [ $? -eq 0 ];then
echo " clear ${logPath} logs $1 ago days logs successfully!">>${scriptLog}
else
echo " clear ${logPath} logs $1 ago days logs fail!">>${scriptLog}
fi
fi
else
#clear nohup.log
clearNohupLog 1

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号