背景
mongodb 的日志非常重要,記錄了執(zhí)行事件,錯(cuò)誤信息,慢查詢等,在我們排查時(shí)有特別的幫助。但是有一點(diǎn)不足之處是所有日志都記錄在同一個(gè)文件,當(dāng)數(shù)據(jù)庫(kù)請(qǐng)求量較大時(shí)會(huì)有如下缺點(diǎn)暴露:
單文件太大,查詢特定的內(nèi)容不方便
容量無法得到控制,日志文件容量會(huì)持續(xù)增大,浪費(fèi)存儲(chǔ)
所以利用 linux 的 crontab 工具定時(shí)執(zhí)行切割日志并保存指定N天前的記錄是一種簡(jiǎn)單的實(shí)現(xiàn)方法。
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
# 注意替換 db 和 日志目錄 和想保存天數(shù)
kill -SIGUSR1 `cat /data/mongodb/db/mongod.lock`
find "/data/mongodb/log/" -mtime +7 -name "mongod.log*" -exec rm -rf {} \;