Mongodb Rocket.chat:回收磁盘空间(Ubuntu快照)

Mongodb Rocket.chat:回收磁盘空间(Ubuntu快照),mongodb,ubuntu-18.04,rocket.chat,Mongodb,Ubuntu 18.04,Rocket.chat,我已经在Raspberry Pi 4上运行了Rocket Chat,在Ubuntu18.04.4 LTS上运行。安装是根据Rocket Chat文档使用Snaps方法完成的 从聊天中删除了很多兆字节的文件后(清除),我注意到Raspberry Pi上的磁盘空间没有得到回收 我听过一些关于运行mongodb命令“compact”的建议,但我不知道如何使用Snaps安装,因为所有命令行工具(即mongomongodb)似乎都不可用 什么命令可以回收磁盘空间?如何运行此命令 谢谢 要运行compact

我已经在Raspberry Pi 4上运行了Rocket Chat,在Ubuntu18.04.4 LTS上运行。安装是根据Rocket Chat文档使用Snaps方法完成的

从聊天中删除了很多兆字节的文件后(清除),我注意到Raspberry Pi上的磁盘空间没有得到回收

我听过一些关于运行
mongodb
命令“compact”的建议,但我不知道如何使用Snaps安装,因为所有命令行工具(即
mongo
mongodb
)似乎都不可用

什么命令可以回收磁盘空间?如何运行此命令


谢谢

要运行
compact
您需要连接。对此,您有两个选项:

  • 在Pi上安装mongo外壳
    如果您按照文档的说明安装了mongodb org包,那么这个伪包就包括mongo shell。您所需要做的就是ssh到Pi,并使用与rocket聊天过程相同的MONGO_URL和凭据执行shell

  • 将配置为Pi上的mongod实例,以便在公共IP上侦听,以便远程连接
    默认情况下,MongoDB只在localhost上侦听,要更改此设置,您需要编辑MongoDB.conf文件以侦听0.0.0.0并重新启动mongod进程。然后,您应该能够从同一网络上的任何主机直接连接到mongod


  • 要运行
    compact
    ,您需要连接。对此,您有两个选项:

  • 在Pi上安装mongo外壳
    如果您按照文档的说明安装了mongodb org包,那么这个伪包就包括mongo shell。您所需要做的就是ssh到Pi,并使用与rocket聊天过程相同的MONGO_URL和凭据执行shell

  • 将配置为Pi上的mongod实例,以便在公共IP上侦听,以便远程连接
    默认情况下,MongoDB只在localhost上侦听,要更改此设置,您需要编辑MongoDB.conf文件以侦听0.0.0.0并重新启动mongod进程。然后,您应该能够从同一网络上的任何主机直接连接到mongod

  • 多亏了,这对我起了作用:

    • sudo rocketchat server.mongo
    • show dbs
      (返回数据库列表)
    • 使用方
      (说明这是Rocketchat使用的方)
    • show collections
      (列出了“collections”,其中rocketchat__;u垃圾听起来像是正确的尝试和“压缩”)
    那么

    db.runCommand({compact:'rocketchat_uutrash',force:true})

    或者,从开始到压缩所有内容:

    db.getCollectionNames().forEach(function (collectionName) {
        print('Compacting: ' + collectionName);
        db.runCommand({ compact: collectionName, force: true });
    });
    
    多亏了,这对我起了作用:

    • sudo rocketchat server.mongo
    • show dbs
      (返回数据库列表)
    • 使用方
      (说明这是Rocketchat使用的方)
    • show collections
      (列出了“collections”,其中rocketchat__;u垃圾听起来像是正确的尝试和“压缩”)
    那么

    db.runCommand({compact:'rocketchat_uutrash',force:true})

    或者,从开始到压缩所有内容:

    db.getCollectionNames().forEach(function (collectionName) {
        print('Compacting: ' + collectionName);
        db.runCommand({ compact: collectionName, force: true });
    });
    

    你好。谢谢你的建议。我是使用
    sudo snap install rocketchat服务器安装的。文档()没有提到mongodb org包,但是如果我安装了它,我应该如何连接,以及使用什么凭据连接?我不知道它们是什么…哦,你使用了快照安装方法。应该为您安装mongodb org。请参阅,其中讨论了如何连接到MongoDB以重置管理员凭据。好的,越来越近。我可以使用sudo rocketchat server.mongo连接到MongoDB。对于要运行的命令,仍然没有进一步的了解
    db.runCommand({compact:'rocketchat'})
    不起作用。
    不起作用
    什么意思?特定的错误消息总是有帮助的。这是一种改进,至少你现在已经连接上了。尝试运行
    show dbs
    ,对于每个数据库列表,使用
    use databasename
    切换到它,然后运行
    show collections
    。当你找到一个有
    rocketchat
    集合的时候,在那里运行compact.Hi那里。谢谢你的建议。我是使用
    sudo snap install rocketchat服务器安装的。文档()没有提到mongodb org包,但是如果我安装了它,我应该如何连接,以及使用什么凭据连接?我不知道它们是什么…哦,你使用了快照安装方法。应该为您安装mongodb org。请参阅,其中讨论了如何连接到MongoDB以重置管理员凭据。好的,越来越近。我可以使用sudo rocketchat server.mongo连接到MongoDB。对于要运行的命令,仍然没有进一步的了解
    db.runCommand({compact:'rocketchat'})
    不起作用。
    不起作用
    什么意思?特定的错误消息总是有帮助的。这是一种改进,至少你现在已经连接上了。尝试运行
    show dbs
    ,对于每个数据库列表,使用
    use databasename
    切换到它,然后运行
    show collections
    。当您找到带有
    rocketchat
    集合的那一个时,在那里运行compact。