这样会使mongo关闭当前日志文件,重启一个新的日志文件,不需要停止mongodb服务
这种方式简单,但是不够灵活
2.向进程发送 SIGUSR1 信号来切割日志
#!/bin/sh logfile=/var/log/mongodb #Mongodb日志存放目录 days=7 #代表删除7天前的备份,即只保留最近7天的备份 /bin/kill -SIGUSR1 `cat /data/tianyiyun/mongod/mongos/log/mongos.pid` #切割日志 find $logfile/ -mtime +$days -delete #删除7天前的备份文件cut_mongodb_log.sh
#!/bin/sh MONGO_CMD=/usr/local/mongodb/bin/mongo KEEP_DAY=7 #flush mongod log datadir=/data/mongodb port=27017 role=mongod destdir=/data/backup/mongolog/${role} if [ ! ‐d "${destdir}" ]; then mkdir ‐p ${destdir} fi $MONGO_CMD ‐‐authenticationDatabase admin admin ‐ubackup ‐p"*****" ‐‐eval "db.runCommand({logRotate:1})" ‐‐port $port mv ${datadir}/mongod.log.????‐??‐??T??‐??‐?? ${destdir}/ find $destdir ‐name "mongod.log.*" ‐mtime +${KEEP_DAY} ‐exec rm ‐rf {} \;sample.sh
#内容 pidfilepath = /data/tianyiyun/mongod/mongos/log/mongos.pid logpath = /var/log/mongodb/mongos.log logappend = true bind_ip = 0.0.0.0 port = 37017 fork = false #监听的配置服务器,只能有1个或者3个configs为配置服务器的副本集名字 keyFile=/data/tianyiyun/conf/keyFile.key configdb = configs/192.168.0.113:31000,192.168.0.171:31000,192.168.0.57:31000 #设置最大连接数 maxConns = 20000mongos.conf
crontab -e
0 0 * * * /data/tianyiyun/cut_mongodb_log.sh #表示每天凌晨执行备份
MongoDB目前支持两种配置文件格式,第一种就是普通的key=value这种格式,跟MySQL一样
第二种是yaml格式,而且新版本的MongoDB更推荐使用yaml格式的配置文件写法
#内容 pidfilepath = /data/tianyiyun/mongod/mongos/log/mongos.pid logpath = /var/log/mongodb/mongos.log logappend = true bind_ip = 0.0.0.0 port = 37017 fork = false #监听的配置服务器,只能有1个或者3个configs为配置服务器的副本集名字 keyFile=/data/tianyiyun/conf/keyFile.key configdb = configs/192.168.0.113:31000,192.168.0.171:31000,192.168.0.57:31000 #设置最大连接数 maxConns = 2000普通格式
systemLog: destination: file logAppend: true path: /var/log/mongodb/mongos.log processManagement: fork: false pidFilePath: /data/tianyiyun/mongod/mongos/log/mongos.pid # network interfaces net: port: 37017 bindIp: 0.0.0.0 maxIncomingConnections: 2000 sharding: configDB: configs/192.168.0.57:31000,192.168.0.171:31000,192.168.0.113:31000 security: keyFile: /data/tianyiyun/conf/keyFile.key clusterAuthMode: keyFile setParameter: diagnosticDataCollectionEnabled: falseyaml格式