脚本 1

脚本 1

我希望在特定时间内(即最近一小时或一天)没有创建新文件或目录时收到警报

服务器从各种来源获取日志文件,并以以下格式保存:

/u01/log/服务器名称/2021-04/03/file.log

/u01/log/服务器名称/YYYY-MN/DD/file.log

提前感谢您的帮助

贾维德

答案1

这是一个简单的 shell 脚本,用于检查今天的文件是否存在。如果您想检查昨天的文件,可以将命令调整datedate -d "yesterday" "+%H %M %d %m %Y"。希望这足以让您进行调整以满足您的要求。

# get the current hour, minute, day, month and year into variables we can use
read HOUR MINUTE DAY MONTH YEAR < <(date "+%H %M %d %m %Y")
# build the file path you're looking for
FILE="/u01/log/server_name/${YEAR}-${MONTH}/${DAY}/file.log"
# Check if the file exists, send an email if it doesn't
if [ ! -f "$FILE" ] ; then
  echo "$FILE does not exist" | mail [email protected]
fi

答案2

脚本 1 列出了脚本中声明的目录。脚本 2 中进一步列出了 /u01/log/2021-02 等目录。脚本 2 失败,需要帮助。

脚本 1

/bin/bash #!/bin/bash

arr=(/u01/log/*)

对于 ((i=0; i < ${#arr[@]}; i++)); 执行

ls -ld "${arr[$i]}"

完毕

成功:输出-->

/u01/log/日志服务器1

....

.....

很快..

脚本2

#设置-xv

/bin/bash #!/bin/bash

MON=日期 '+%m'

DAY=日期 '+%d'

YEAR=日期 '+%Y'

YEAR-MON=日期 '+%Y-%m'

arr=(/u01/log/*)

对于 ((i=0; i < ${#arr[@]}; i++)); 执行

文件="${arr[$i]}/ ${YEAR-MON}"

ls -ld $文件

完毕

错误:list.sh:第 4 行:+%m:未找到命令

list.sh:第 5 行:+%d:未找到命令

list.sh:第 6 行:+%Y:未找到命令

list.sh:第 7 行:YEAR-MON=date:未找到命令

list.sh:第 13 行:MON:未找到命令

一旦解决此问题,如果在 /u01/log/YEAR-MON 中没有创建新文件,它应该会发送电子邮件警报

谢谢 Javeed

相关内容