我有一个 bash 脚本,它使用 ping 测试进行互联网访问,该脚本有一个 cron 作业启动该脚本,并输出任何问题的 2>&1。
但是,我需要这些问题,在我正在使用的日志文件中写入特定行。 没有捕获到主机的路由并且无法解析主机,但这表明访问互联网服务存在问题,因此应该记录在我的日志文件中。
我真的很难找到解决方案。
*/1 * * * * /onlineCHECK/onlineCHECK.sh >> /onlineCHECK/logs/onlineCHECK_issues--Crontab.log 2>&1
我想要的是将以下内容写入我的日志文件:
(date "+%m/%d/%Y %I:%M:%S %p")"|0|0|0|0|"(date "+%m/%d/%Y %I:%M:%S %p")
将命令通过管道传送到一个循环,该循环在每行前面加上日期前缀。创建另一个脚本
date_prefix.sh
:
#!/bin/bash
while read -r line
do
echo "$(date "+%m/%d/%Y %I:%M:%S %p")|$line"
done
在 crontab 中:
*/1 * * * * /onlineCHECK/onlineCHECK.sh 2>&1 | date_prefix >> /onlineCHECK/logs/onlineCHECK_issues--Crontab.log 2>&1