• 监控脚本展示


    需求:
    监控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/bash
    
    DIR="/data/app/datafile/ftp/qdttec/10000002/download/$(date +"%Y%m%d")"
    THRESHOLD=20 # 20 minutes
    
    check_files() {
        for prefix in SVQC SVCD FHTC FHQC FHCD; do
            file=$(find $DIR -type f -name "${prefix}*" -mmin -$THRESHOLD -print -quit)
            if [[ ! -f "$file" ]]; then
                echo "false"
                return 1
            fi
        done
        echo "true"
        return 0
    }
    
    check_files
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    你可以将上述脚本保存为monitor_files.sh。确保它是可执行的:

    chmod +x monitor_files.sh
    
    • 1

    然后,你可以使用cron来每隔10分钟执行此脚本。首先,打开你的cron配置:

    crontab -e
    
    • 1

    然后,添加以下行以每隔10分钟执行上述脚本:

    */10 * * * * /path/to/monitor_files.sh
    
    • 1

    其中,/path/to/应替换为monitor_files.sh脚本的实际路径。

    这样,你的脚本将每隔10分钟执行一次,监控所需的文件,并按照你的要求检查文件的生成时间。

  • 相关阅读:
    XShell与XFtp的安装及简单使用
    Redis(五)——Redis的Java客户端
    Verilog generate
    SMT32H7系列DMA和DMAMUX的一点理解
    Java自学-运算符
    Redis(七) - 封装Redis工具类
    消息队列中间件的选型与比较
    MySQL:IFNULL无法返回null的情况
    基于神经网络的图像分割,图像识别神经网络算法
    Maven最新版的下载与安装教程(详细教程)
  • 原文地址:https://blog.csdn.net/u011197085/article/details/133638651