You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Cron任务使Bash脚本输出指定格式的网络错误日志

解决Ping测试网络连通性时的特定日志记录需求

直接修改你的onlineCHECK.sh脚本,让它自动检测指定错误并写入你要的格式日志,具体代码如下:

#!/bin/bash
# 替换成你实际要测试的目标主机
TARGET_HOST="your-target-host.com"
# 日志文件路径,和你cron里配置的一致
LOG_FILE="/onlineCHECK/logs/onlineCHECK_issues--Crontab.log"

# 执行ping测试,捕获所有输出(包括错误)
ping_result=$(ping -c 3 "$TARGET_HOST" 2>&1)

# 检查输出中是否包含指定的错误关键词
if echo "$ping_result" | grep -qE "No route to host|cannot resolve host"; then
    # 生成统一时间戳,避免两次date调用出现时间差
    current_time=$(date "+%m/%d/%Y %I:%M:%S %p")
    # 写入指定格式的日志行
    echo "$current_time|0|0|0|0|$current_time" >> "$LOG_FILE"
fi

# 可选:把ping的原始输出也追加到日志,方便后续排查细节
echo "$ping_result" >> "$LOG_FILE"

关键说明:

  • ping -c 3:指定ping3次就停止,避免cron每分钟执行时出现无限ping的情况,次数可以根据需求调整
  • grep -qE:静默匹配两个错误关键词,只要出现其中一个就触发日志写入
  • 统一时间戳:用变量存储一次date结果,保证日志前后时间完全一致
  • 日志写入逻辑:只有触发指定错误时才会写入你要的格式行,同时可选保留原始ping输出,方便排查其他问题

Cron配置调整(可选)

如果脚本里已经处理了日志写入,你可以把cron命令里的日志追加部分去掉,避免重复输出:

*/1 * * * * /onlineCHECK/onlineCHECK.sh

要是想保留脚本自身的其他错误输出,继续用原来的cron配置就行。

内容的提问来源于stack exchange,提问作者ShaunATac

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 14:47:12