shell脚本:tomcat和nginx日志切割
tomcat日志切割:
点击查看代码
#!/bin/bash
######################################
##weibaxiao 用户tomcat日志切割########
######################################
LOG_HOME=/data/aa/logs
cd $LOG_HOME
CATA_LOG='catalina.out aa-all.log' # 引号内可以添加目录下得多个文件名
date_now=`date +%Y%m%d`
#d7=`date -d'7 day ago' +%Y%m%d`
hour_min=`date +"%H%M"`
function log_qiege() {
num=`find ./ -size +50M -name $1|wc -l`
if [ $num -eq 1 ]; then
echo "开始切割日志文件:$1"
cp $1 ${1}-${date_now}
echo "" > $1
else
echo "没有需要切割的日志文件"
fi
}
function del_log_file() {
if [ "$hour_min" == "2320" ]; then
echo "删除10天之前的日志文件"
find ./ -mtime +3|grep -iE '.log|catalina'|xargs rm -f
else
echo "没有需要清理的旧文件"
fi
}
function main() {
for file in `echo $CATA_LOG`
do
log_qiege $file
done
del_log_file
}
main
nginx日志切割:
点击查看代码
#!/bin/bash
#此脚本用于自动分割Nginx的日志,包括access.log和error.log
#每天00:00执行此脚本 将前一天的access.log重命名为access-xxxx-xx-xx.log格式,并重新打开日志文件
#Nginx日志文件所在目录
LOG_PATH=/data/nginx/logs
#获取昨天的日期
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
#获取pid文件路径
PID=/data/nginx/logs/nginx.pid
#分割日志
file_log='access.log error.log' # 需要切割的日志文件
cd $LOG_PATH
function qiege() {
for file in `echo $file_log`
do
temp_num=`find ./ -size +50M -name $1|wc -l`
if [ $temp_num -eq 1 ]; then
mv ${LOG_PATH}/$1 ${LOG_PATH}/${1}-${YESTERDAY}
fi
kill -USR1 `cat ${PID}`
done
}
#向Nginx主进程发送USR1信号,重新打开日志文件
function main() {
qiege
}
main