2

我有一个服务器(Ubuntu),它为多个域提供服务并运行一系列 cron 脚本。但是无法预测服务器上的负载,因此我无法在 cron 脚本中设置正确的负载量。

然而,在 cron 中运行的脚本有时会超载,并在 CPU 和内存中产生巨大的负载,导致服务器的多个服务停止(例如邮件服务器)。

问题是:我如何编写一个脚本,仅当服务器负载低于最小阈值时才运行现在在 cron 中的例程?有没有在 Linux 下执行此操作的应用程序?

感谢您的时间!

4

1 回答 1

1

您可以检查monit系统管理。您可以将其添加到您的配置文件中:


   # 监控 apache2 网络服务。
    # 它将使用给定的 pid 文件检查进程 apache2。
    # 如果进程名或 pidfile 路径错误,则 monit 将
    # 给出失败的错误。坚韧的 apache2 正在运行。
    使用 pidfile /var/run/apache2.pid 检查进程 apache2
     启动程序 = "/etc/init.d/apache2 启动"
     停止程序 = "/etc/init.d/apache2 停止"
     # 如果满足以下条件,管理员将通过邮件通知。
     如果 CPU 在 2 个周期内大于 60%,则发出警报
     如果 cpu > 80% 5 个周期然后重新启动
     如果 totalmem > 200.0 MB 5 个周期然后重新启动
     如果孩子> 250然后重新启动
     如果 loadavg(5min) 在 8 个周期内大于 10 则停止
     如果 3 个在 5 个周期内重新启动,则超时
     群服务器

这是一个很好的工具,您可以搜索在满足条件时如何执行自己的脚本。

于 2013-08-18T08:57:59.940 回答