Mongodb默认日志的清理!

Reference: http://docs.mongodb.org/manual/tutorial/rotate-log-files/
 

1. start service

Start a mongod with verbose logging, with appending enabled, and with the following log file:
such as
mongod -v --logpath /var/log/mongodb/server1.log --logappend

2. list the logs:

ll /var/log/mongodb/server1.log*

 

3. reason

因为日志不停变大,所以如果不清理,会影响mongodb的运行效率

 

4. 清理日志的办法

4.1 进入Mongo Shell里面去清理

/usr/local/mongodb/bin/mongo -umanage -p byxf54root$% admin

use admin

db.runCommand({ logRotate :1 } )

PRIMARY> db.runCommand( { logRotate : 1 } );

{ "ok" : 1 }

PRIMARY>

 

执行完毕,到linux目录察看

tail -1000f /data01/fkmongo/log/mongodb.log1

看到会生成一个当前时间节点的log备份,然后生成一个新的跟原来日志 一样名字的新日志出来。

 

4.2. From the UNIX shell, rotate logs for a single process by issuing the following command

kill -SIGUSR1 <mongod process id>

1

看到需要pid,所以先去linux上面看mongodbprocess id

[root@mongo mongodb]# ps -eaf|grep mongo

root     11857     1 12 May09 ?        1-10:51:19 /usr/local/mongodb37017/bin/mongod -f /etc/mongodb/37017.conf

root     11887     1  1 May09 ?        02:57:04 /usr/local/mongodb37018/bin/mongod -f /etc/mongodb/37018.conf

root     11902     1  1 May09 ?        02:58:35 /usr/local/mongodb37020/bin/mongod -f /etc/mongodb/37020.conf

root     11918     1  1 May09 ?        02:58:11 /usr/local/mongodb37019/bin/mongod -f /etc/mongodb/37019.conf

root     20572 20358  0 10:24 pts/0    00:00:00 /usr/local/mongodb37017/bin/mongo 127.0.0.1:37017/admin -uroot -proot

root     20964 20577  0 10:32 pts/2    00:00:00 grep mongo

 

 

找到mongodbprocess id11857 ,然后执行命令,follows

[root@mongo mongodb]# kill -SIGUSR1 11857

[root@mongo mongodb]# ll *mongodb17* -t

-rw-r--r--. 1 root root       71 May 21 10:34 mongodb17.log

-rw-r--r--. 1 root root    15613 May 21 10:33 mongodb17.log.2013-05-21T02-34-00

-rw-r--r--. 1 root root  1774778 May 21 10:25 mongodb17.log.2013-05-21T02-25-29

看到绿色粗体的就是新生成的备份的日志文件,然后生成一个新的跟原来日志 一样名字的新日志出来。

 

4.3 From the UNIX shell, rotate logs for all mongod processes on a machine by issuing the following command:

[root@mongo mongodb] killall -SIGUSR1 mongod

1

看到这个是在linux下面rotate所有的mongodb进程的logfollows

[root@mongo mongodb]# killall -SIGUSR1 mongod   #执行命令

[root@mongo mongodb]#

[root@mongo mongodb]# ll  -t

total 119656

-rw-r--r--. 1 root root      151 May 21 10:36 mongodb18.log

-rw-r--r--. 1 root root      374 May 21 10:36 mongodb20.log

-rw-r--r--. 1 root root       71 May 21 10:36 mongodb17.log

-rw-r--r--. 1 root root       71 May 21 10:36 mongodb19.log

-rw-r--r--. 1 root root     5524 May 21 10:36 mongodb17.log.2013-05-21T02-36-56

-rw-r--r--. 1 root root  1794901 May 21 10:36 mongodb19.log.2013-05-21T02-36-56

-rw-r--r--. 1 root root  1794518 May 21 10:36 mongodb20.log.2013-05-21T02-36-56

-rw-r--r--. 1 root root  1794805 May 21 10:36 mongodb18.log.2013-05-21T02-36-56

看到4mongodb进程都生成了新的日志,备份了旧的日志。
 

4.4. CP,>,最原始的办法。

cp mongodb17.log mongodb17.log.bak.2013-05-21.10-40

> mongodb17.log

个人比较推荐的是 4.3 killall -SIGUSR1 mongod 当然了这里备份完后,还需要自己压缩并将压缩日志文件copy到自己的日志备份文件服务器上面去。

 

你可能感兴趣的:(mongodb)