linux - 调用 Bash 脚本并结束,而不是再次重新启动

标签 linux bash command-line cron

我正在服务器上通过 Cron Job 运行 Bash 脚本,我需要自行调用并结束它。

脚本:

#!/bin/bash

while [ true ]
        do
        DATE=`date "+%d.%m.%Y. %H:%M"`
        MSG='STUFF HERE'
        test=`/usr/sbin/asterisk -rx "sip show peers" | grep UNKNOWN `
        if [ -z "$test" ]; then
        sleep 100
        else
        top=`top -bn1 | tail`
echo -e "$test" | mail -r "support@abc.com" -s  "SIP Peer UNKNOWN/UNSPECIFIED `hostname` $DATE" abc@cabc.com 
       sleep 900
        fi
done

我需要它不要自行重置 我会在需要时通过 cron 调用脚本。

谢谢

最佳答案

当您使用 cron 调用它时,cron 必须处理循环。
删除 whilesleep。当警告发出后,您想睡得更久,这应该在检测代码之外进行管理。稍后您将进行更多监控,仅在工作时间向不同的人发送邮件,也许还使用邮件以外的其他东西。

关于linux - 调用 Bash 脚本并结束,而不是再次重新启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41663415/

相关文章:

linux - wget 和 htaccess : username only

MySQL 查询 - 用表中的特定 URL 替换任何和所有 URL

linux - 我可以使用多少个管道有限制吗?

ruby-on-rails - Rails 命令 : --no-test-framework, --skip-test-unit 和 -T 有什么区别?

python - 为什么 Python 为短于文件系统限制的文件名给出 "OSError: [Errno 36] File name too long"?

linux - 为什么我的干净 URL 在 Drupal 中不起作用,即使 rewrite_module 存在?

linux - 如何复制文本文件的一部分并将它们粘贴到新文件中

BASH:在特定 CSV 列中查找最大值

c# - 如何在多行文本框中制作命令行

linux - 如何编写一个 Bash 程序来搜索目录并列出具有最大编号后缀的文件?