Monogo日志文件旋转,并定期清理脚本

每日生成Monogo日志文件,并定期清理脚本。

(请注意:本脚本如果以定时任务运行,如果数据库在恢复过程中,请一定记得要关闭该任务,不然,会导致恢复成功后,Mongo进程自己停止掉,导致恢复失败)

Mongo日志文件一直写入到一个文件,文件越来越大,为了更好的治理日志文件,写下如下脚本,用于旋转Mongo日志,并定期清理。

#!/bin/bash
# Roate mongos or mongd logging file
# And check logging file date, remove old file before 7 days

LOGPATH=/home/mongodb/log

MONGO_PID_CMD="ps aux | grep mongo | grep -v grep | awk '{print $2}'"

pids=`ps aux | grep mongo | grep -v grep | awk '{print $2}'`
for pid in $pids
do
    echo "Send mongo rotate log single to process id:" $pid
    kill -SIGUSR1 $pid
done

logfiles=`ls $LOGPATH -l | grep -E '\.log\.[0-9]{4}-[0-9]{2}-[0-9]{2}' | awk '{print $9}'`
echo "logfiles $logfiles"
oldDate=`date -d "7 days ago" "+%Y-%m-%d"`
echo "Clear all file before at " $oldDate
oldTimestamp=`date -d "$oldDate" "+%s"`
for logfile in $logfiles
do
    echo "Check file $logfile"
    fileDate=`echo $logfile | grep -Eo "[0-9]{4}-[0-9]{2}-[0-9]{2}"`
    fileTimestamp=`date -d "$fileDate" "+%s"`
    if [ $oldTimestamp -gt $fileTimestamp ]; then
        echo "Delete file:$LOGPATH/$logfile"
        rm $LOGPATH/$logfile
    fi
done

关于Mongo的启动过程分析,请参加https://blog.csdn.net/yin138/article/details/110494094

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值