linux - shell bash 代码未运行且没有错误警告

标签 linux apache bash shell curl

我写了一些 shell bash 来检查 apache 是否有错误?我使用 curl 我的一页,如果 head 返回 200 ok,看来 apache 运行良好,否则,做 service httpd restart,为了监控脚本是否,我写了一些运行日期和状态到一些日志(1.txt)。

apache.sh

#!/bin/bash
curl -I http://www.mydomain.com/check.php 2>/dev/null | head -1 | grep -q " 200 OK"
if [ $? -eq 0 ]; then echo "ok $(date)" >> 1.txt; else service httpd restart;echo "restart $(date)" >> 1.txt; fi

定时任务

*/6 * * * * /bin/sh /home/username/apache.sh >/dev/null 2>&1

但是昨天,我的 apache 还是没了,(子进程 xxxx 仍然没有退出,发送了一个 SIGKILL)。

我在 ssh 命令行 /bin/sh/home/username/apache.sh 中尝试,没有日志写入(1.txt 为空),也没有错误警告。

问题出在哪里?谢谢。

最佳答案

您可以尝试这样一个更简单的脚本:

rc=$(curl -Is -w '%{http_code}' -o /dev/null http://www.mydomain.com/check.php)
if [ $rc -eq 200 ]; then
    echo "ok $(date)" >> 1.txt
else
    service httpd restart
    echo "restart $(date)" >> 1.txt
fi

关于linux - shell bash 代码未运行且没有错误警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19332740/

相关文章:

Linux - 我可以在 aarch64 架构上运行 arm64 二进制文件吗?

python - 使用 Python 解析大型 journalctl 文件以匹配关键字的有效方法

php - 如何在 Ubuntu 16.04 上安装 php 5

apache - (99)无法分配请求的地址 : AH00072: make_sock: could not bind to address xx. xxx.xxx.xx:80

perl - 用于查找所有名称相似的文件的脚本(仅大小写不同?)

linux - 结合两个 bash 命令

java - 无法从 MAC 上的脚本访问 jarfile

python -/usr/bin/env : python3. 3: chroot 内没有这样的文件或目录

php - PHP 文件名(或其完整路径中的目录)可以包含 UTF-8 字符吗?

linux - 定义带或不带导出的变量