构建一个脚本来查找文件(如果存在)并使用 grep 查找字符串

构建一个脚本来查找文件(如果存在)并使用 grep 查找字符串

根据 K7AAY 和 0xSheepdog 的建议,我将重新表述。

我需要创建一个 bash 脚本,其中它将生成grep一个日志文件,该日志文件是在一天中的某个时间范围内发送文件时每天生成的。

文件名通常类似于YYYYMMDD_HHMMSS_SEND_FILENAME_TO_HOST.log

(此日志文件是从CFTutil文件传输应用程序生成的)

在此日志文件中,我需要脚本来查找我能够执行的以下字符串:

成功的

现在,如果文件在 x 和 y 时间之间成功传输,则脚本必须发送电子邮件。如果在 x 和 y 时间之间未发送文件,则必须发送电子邮件。如果在 y 之后发送文件,则如果未发送文件,则必须发送电子邮件。

我能够执行以下脚本,但我被卡住了,并且认为这不是最好的方法。由于此脚本只会搜索 1 个文件,而我需要对 15 个文件执行此操作。

我虽然为每个文件创建一个脚本并使用 cron 作业进行调度,但我想在一个脚本中完成所有操作,这样我就可以随时运行并接收其中每个文件的状态报告。

目前的脚本是这样的:

#!/bin/bash
dt=$(date +"%Y%m%d")
HHMM=$(date '+%H:%M')

if
        find ./ -newermt "$dt 21:30:00" ! -newermt "$dt 23:50:00" -name "$dt_*SEND_FILE1_TO_HOST.log" -exec grep -i successful {} \;
then
#       mail -s "File File1 Transmission Report" [email protected] <<< "File was generated and successfully sent at $HHMM";
        echo "Sucess"
elif
        find ./ -newermt "$dt 21:30:00" ! -newermt "$dt 23:50:00" -name "$dt_*SEND_FILE1_TO_HOST.log" -exec grep -i unsuccessful {} \;
then
#       mail -s "File File1 Transmission Report" [email protected] <<< "File was generated but unsuccessfully sent at $HHMM";
        echo "Error"
elif
        find ./ -newermt "$dt 21:30:00" ! -newermt "$dt 23:50:00" -name "$dt_*SEND_FILE1_TO_HOST.log" -exec false {} \;
then
#        mail -s "File File1 Transmission Report" [email protected] <<< "File not generated in due time Please verify ASAP";
        echo "Not Found"
fi

newermt不起作用,我仍在尝试弄清楚如何在时间范围内搜索文件。

CFTUTIL 是一个监视文件接收和主机之间分发的工具。它不断监视文件目录,当收到文件时,它将分发和存档。执行此操作时,它将为每个主机生成一个日志。

我怎样才能创建这样的脚本。

相关内容