公司有个项目,又很多文件,项目很早之前搭建的,文件呢又不存储在阿里oss,只是在ECS上挂了个盘,近期有反馈,说有几个几年前的文件没了,领导呢就让做备份,其实有个镜像备份,但是还原不便,另外就是镜像不会一直留存,所以采用NAS作为备份存储,通过rsync全量同步,然后每天增量同步,但是同步成功不知道,所以需要配置个监控。
rsync同步脚本:
#!/bin/bash
date_time=`date '+%Y-%m-%d-%H:%M:%S'`
rsync -auv /data2/pic/* /back_dir/data2/pic/ > /tmp/rsync_data2/rsync_data2_pic-$date_time.log
定时执行,因为后续脚本原因,执行时间应该是凌晨00:01到4点之间,随意给;脚本执行会生成一个已日期为格式的日志文件。
监控脚本:
#!/bin/bash
date_time=`date '+%Y-%m-%d'`
name=rsync_data2_pic-
type=.log
file_dir=/tmp/rsync_data2/
file_num=`ls -l $file_dir$name$date_time*$type 2> /dev/null| wc -l`
if [ $file_num -ne 0 ];then
file_name=`ls -l $file_dir$name$date_time*$type | awk -F' ' '{print $9}'`
grep -E 'sent.*received' $file_name > /dev/null 2>&1
if [ $? -eq 0 ];then
#echo '同步完成'
echo 1
else
echo '同步失败'
#echo 0
fi
else
echo '文件不存在'
#echo 0
fi
两步,一次检查文件是否存在,一次检查同步是否完成,完成输出个 1
zabbix conf文件:
在 zabbix_agentd.d 目录下随便写个 .conf 的文件,加入监控配置
UserParameter=rsync.data2-pic,/bin/bash /etc/zabbix/script/rsync_data2_pic-jk.sh
监控项添加
红框内表示周一到周日5点到22点间每隔5分钟获取一次监控结果
告警
结果非 1 告警
最新数据中显示了每隔五分钟各个状态的值