linux shell 监控 以下目录,一个小时内文件的个数,小于1,发出返回值,$SETTLE_DATA/databackup/ctjs/H_CC08_LS $SETTLE_DATA/databackup/cdma/cctjs/ZX $SETTLE_DATA/databackup/cdma/cctjs/HW $SETTLE_DATA/databackup/IMS/SJZ $SETTLE_DATA/databackup/IMS/LF $SETTLE_DATA/databackup/ts/ngn_bak1 $SETTLE_DATA/databackup/in/17901_bak1 $SETTLE_DATA/databackup/in/4008_bak1 $SETTLE_DATA/databackup/in/smp_bak1 $SETTLE_DATA/databackup/intcdr/inter_jt_bak1 $SETTLE_DATA/databackup/cdma/htsms $SETTLE_DATA/databackup/caiE_bak1_bak1 $SETTLE_DATA/databackup/roam/prov_roam_bak1 $SETTLE_DATA/databackup/roam/inter_roam_bak1 $SETTLE_DATA/databackup/roam/prov_gprs_bak1 $SETTLE_DATA/databackup/cdma/voice $SETTLE_DATA/databackup/cdma/hwcdma $SETTLE_DATA/databackup/roam/prov_SA_gprs_bak1 $SETTLE_DATA/databackup/ims
时间: 2023-07-07 14:35:13 浏览: 172
您可以使用以下脚本来监控以上目录中一个小时内文件的个数是否小于1:
```
#!/bin/bash
# 监控目录列表
dir_list=("$SETTLE_DATA/databackup/ctjs/H_CC08_LS" "$SETTLE_DATA/databackup/cdma/cctjs/ZX" "$SETTLE_DATA/databackup/cdma/cctjs/HW" "$SETTLE_DATA/databackup/IMS/SJZ" "$SETTLE_DATA/databackup/IMS/LF" "$SETTLE_DATA/databackup/ts/ngn_bak1" "$SETTLE_DATA/databackup/in/17901_bak1" "$SETTLE_DATA/databackup/in/4008_bak1" "$SETTLE_DATA/databackup/in/smp_bak1" "$SETTLE_DATA/databackup/intcdr/inter_jt_bak1" "$SETTLE_DATA/databackup/cdma/htsms" "$SETTLE_DATA/databackup/caiE_bak1_bak1" "$SETTLE_DATA/databackup/roam/prov_roam_bak1" "$SETTLE_DATA/databackup/roam/inter_roam_bak1" "$SETTLE_DATA/databackup/roam/prov_gprs_bak1" "$SETTLE_DATA/databackup/cdma/voice" "$SETTLE_DATA/databackup/cdma/hwcdma" "$SETTLE_DATA/databackup/roam/prov_SA_gprs_bak1" "$SETTLE_DATA/databackup/ims")
# 获取当前时间
current_time=$(date +%s)
# 遍历目录列表
for dir in "${dir_list[@]}"
do
# 计算一个小时前的时间
last_hour=$((current_time-3600))
# 获取目录中最后修改时间在一个小时之内的文件个数
file_count=$(find "$dir" -type f -newermt @"$last_hour" | wc -l)
# 判断文件个数是否小于1
if [ "$file_count" -lt 1 ]; then
echo "目录 $dir 中一个小时内文件个数小于1"
exit 1
fi
done
echo "所有目录中一个小时内文件个数均不小于1"
exit 0
```
您可以将以上脚本保存为一个文件,例如 `check_file_count.sh`,然后将其添加到 crontab 中,每小时执行一次,如下所示:
```
0 * * * * /path/to/check_file_count.sh >/dev/null 2>&1
```
这将会在每个小时的第 0 分钟执行 `check_file_count.sh` 脚本,并将输出重定向到 `/dev/null`,以防止出现不必要的邮件通知。如果脚本检测到一个小时内文件个数小于1,则会以非零状态码退出,crontab 会将其视为任务执行失败并发送邮件通知。
阅读全文