定期清理nohup.out

事件背景

服务应用weblogic通过nohup启动.

nohup的使用全部都在weblogic域中的bin目录下

但是没有做定期nohup.out的清理
导致核心服务的日志过大,在出现问题时候难以打开日志进行问题定位

处理方法

crontab 加脚本每天凌晨清理备份一次nohup日志

脚本如下

#!/bin/bash

#ENV
DATE=$(date +"%m-%d")
BASE=$(awk -F"'" '/gobin/{print $2}' ~/.bashrc|awk '{print $2}')
FILE=$BASE'log'
LOG=$BASE'nohup.out'

#Check if the log file exist
if [ ! -d $FILE ];then
mkdir $FILE
fi

#Backup the log to the FILE
echo "$DATE"
echo '#Back up the log file#'
cp $LOG $FILE/$DATE.log

#Clean today's log
echo 'Start to clear..'
cp /dev/null $LOG

#Delete files from seven days ago
find $FILE -type f -mtime +7 -name "*.log" -exec rm {} ;
echo '#Finished.#'

脚本ENV取当前变量说明

目的脚本要适应多台服务器中的weblogic域路径,

利用weblogic用户下的alias(里面在部署项目时候设置有域的bin路径)

cat ~/.bashrc
# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi

...

export PS1="<! `hostname` [`whoami`] :"'$PWD'">"
alias gobin='cd /home/weblogic/bea/user_projects/domains/pro_domain/bin/'

...

 

# User specific aliases and functions

截取里面域的路径

BASE=$(awk -F"'" '/gobin/{print $2}' ~/.bashrc|awk '{print $2}')

 

通过自动获取域的路径,同时通过ansible批发到核心服务当中.

再配合crontab实现核心服务器日志的定期清理

 

 

 
 
 
 
 
点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注