【问题标题】:Schedule a task to run daily on eJabberd server?安排任务每天在 eJabberd 服务器上运行?
【发布时间】:2015-08-05 01:18:42
【问题描述】:

我想设置一个任务来销毁我的 eJabberd 服务器上所有不活动的持久聊天室。是否可以设置这样的任务?

【问题讨论】:

    标签: ejabberd multiuserchat


    【解决方案1】:

    ejabberdctl 命令行工具可以在 ejabberd 中启用模块 mod_muc_admin 时为您提供 MUC 管理命令访问权限。该模块自 ejabberd 15.04 起默认可用。

    启用后,您应该可以访问多个命令来销毁 MUC 房间:

    • destroy_room 销毁特定的 MUC 房间
    • destroy_rooms_file 销毁 MUC 房间列表。
    • rooms_unused_destroy销毁所有N天未使用的MUC房间。

    ejabberd 文档中提供了命令列表:Multi User Chat Administration Commands

    您可能会使用命令rooms_unused_destroy,因为它似乎完全符合您的需要。

    关于任务的调度,你应该依赖你的操作系统调度工具,例如cron。在自动执行命令之前,您应该小心并在几天内手动测试您的命令,以避免任何错误。

    【讨论】:

    • 感谢您的回复。你知道如何在 Unbuntu 上启用 mod_muc_admin 吗?一旦我将 {mod_muc_admin, []} 添加到我的模块并重新启动我的 .cfg ,它就会破坏服务器。我在服务器上运行 ejabberd 2.1.11。
    • 如前所述:“该模块自 ejabberd 15.04 起默认可用。”。您需要安装 ejabberd 15.04 及更高版本。它不适用于 ejabberd 2.1,因此您需要自己安装 ejabberd 才能使用该模块。
    • 你不能。您需要使用较新的 ejabberd。
    • 那么,您能否指出我在 Ubuntu 服务器上安装 eJabberd 15.04 的正确方向?
    • 文档在此处:docs.ejabberd.im/admin/guide/installation,包含所有选项:二进制安装程序、实验性 deb 包和从源代码编译。下载页面为:process-one.net/en/ejabberd/downloads
    【解决方案2】:

    如果服务器正在运行 linux,您可以在服务器上创建一个 cron 作业来杀死所有聊天室。我不知道 ejabbered 的命令是什么,但类似下面的一行。如果您希望它每天运行一次。

      1 1 * * * service ejabberd restart
    

    分钟
    小时


    【讨论】:

    • 我的 eJabberd 服务器在 Ubuntu 服务器上。我对此很陌生,cron 工作到底是什么?
    • 这是一个每天在特定时间运行的命令。有关快速介绍,请参阅man crontabunixgeeks.org/security/newbie/unix/cron-1.html
    • 如果我的命令是“service ejabberd restart”,所有空格会是什么样子?
    • 所以我不需要在你发给我的链接中看到它的 root 前缀?
    • ejabberd 重启不会破坏永久聊天室。它们是持久的,并且根据定义在重新启动时保持不变。
    猜你喜欢
    • 1970-01-01
    • 2010-10-04
    • 2015-05-09
    • 2019-11-25
    • 2021-07-12
    • 2019-08-20
    • 1970-01-01
    相关资源
    最近更新 更多