MongoDB日志定时滚动归档
2024-09-19 11:23 ndzj 阅读(25) 评论(0) 编辑 收藏 举报#!/bin/bash
logtype='mongo' #
SG='M' #单位G或M
target=4 #阀值
retention_time=20 #日志归档保留周期(天)
#处理日志函数
function log_dispose() {
#大于xx G
pd_log_size=$(du -sh $1 |grep "$SG"|cut -d''$SG'' -f1)
log_pwd=$(dirname "$1")
if [ -z "$pd_log_size" ]; then
echo "变量为空,退出脚本。"
exit 1
fi
if [ $pd_log_size -gt $target ]; then
lz4 $1 >"$1"_`date +%Y%m%d_%H%M%S`.lz4
:>"$1"
fi
}
#日志获取列表
logs_file=$(grep '/log' `ps -ef|grep "$logtype"|grep -vE 'grep|_export'|awk -F' ' '{print $10}'`|cut -d'"' -f2)
for f in $logs_file; do
log_dispose "$f"
done
find $log_pwd -type f -name "*.lz4" -mtime +"$retention_time" -exec rm {} \;
说明 : 支持 一台机器上运行多个实例的日志管理
06 0 * * * source /etc/profile ; cd /data/clear_log && /bin/bash clear_log.sh