每日生成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