监控脚本展示
需求:
监控SVQC,SVCD,FHTC,FHQC,FHCD文件的生成
监控服务器:10.10.3.56
监控路径:/data/app/datafile/ftp/qdttec/10000002/download/yyyyMMdd/*
监控时间:每天7点开始,23点结束
监控逻辑:每隔10分钟扫一次目录,文件最近一次生成时间与当前时间大于间隔20分钟,提示告警
监控结果:若没有该文件,报警,报警内容为:【SVQC,SVCD,FHTC,FHQC,FHCD】文件生成失败
提问:
帮我写一下shell监控以SVQC,SVCD,FHTC,FHQC,FHCD开头的文件,一个都不能少
监控以SVQC,SVCD,FHTC,FHQC,FHCD开头的最新的文件属性中的时间属性,如果文件最近一次生成时间与当前时间大于间隔20分钟,则返回false,小于20分钟就返回true
,每隔10分钟执行一次,这些文件都在/data/app/datafile/ftp/qdttec/10000002/download/20231007目录下,其中20231007是时间变量,指的是当天的日期时间
回答:
要监控指定开头的文件并检查它们的生成时间,你可以使用find
命令来帮助定位这些文件,并检查它们的时间属性。
以下是一个简单的脚本,它执行你描述的操作:
#!/bin/bashDIR="/data/app/datafile/ftp/qdttec/10000002/download/$(date +"%Y%m%d")"
THRESHOLD=20 # 20 minutescheck_files() {for prefix in SVQC SVCD FHTC FHQC FHCD; dofile=$(find $DIR -type f -name "${prefix}*" -mmin -$THRESHOLD -print -quit)if [[ ! -f "$file" ]]; thenecho "false"return 1fidoneecho "true"return 0
}check_files
你可以将上述脚本保存为monitor_files.sh
。确保它是可执行的:
chmod +x monitor_files.sh
然后,你可以使用cron
来每隔10分钟执行此脚本。首先,打开你的cron配置:
crontab -e
然后,添加以下行以每隔10分钟执行上述脚本:
*/10 * * * * /path/to/monitor_files.sh
其中,/path/to/
应替换为monitor_files.sh
脚本的实际路径。
这样,你的脚本将每隔10分钟执行一次,监控所需的文件,并按照你的要求检查文件的生成时间。