ftp备份服务器数据完整性检查并实现短信告警功能的shell分享,告警shell现将该脚本贴出以供大


该脚本实现了对远程备份到ftp服务器的数据完整性及是否ftp到该服务器进行了检查,如果没有及时备份到该ftp服务器则脚本会触发短信告警功能模块实现短信的告警,最后由于ftp服务器的空间有限,笔者在征求相关人员已经后制定了90天之前的数据进行删除的策略并在脚本中也实现了该功能。现将该脚本贴出以供大家学习参考。

#!/usr/bin/ksh


#---------------------------------------------------------


# scriptname:


#mon the data backup


# version:


#1.2


# description:


#- if you have "/opt/mon/backup/my.lock",the monitor is unavailability ;


#- if find service error ,send message to admin.


# method:


# author:


#create by fengzhanhai


# notes:


#- the return variant is correct equal 0,error equal 1.


#---------------------------------------------------------


#script conf---------------------------------------------


Mon_Path="/backup/autobk/mon"


Mon_log="$Mon_Path/backup.log"


SMS_Server="your sms ip or fetion robot"


SMS_Send="$Mon_Path/sendsms"


Admin_Mobile="$Mon_Path/youmobilelist"


SMS_From=`hostname`


SMS_Header="Your-Mysql--DataBackup-"


Service_IP="your ftp server"


#check the lock file------------------------------------


getLock()


{


if [ -f "$Mon_Path/$Service_Name.lock" ];then


return 1


else


return 0


fi


}


#writer the message to log--------------------------


logwriter()


{


if [ ! -d `dirname $Mon_log` ]; then


mkdir -p `dirname $Mon_log`


fi


echo `date "+%Y-%m-%d %H:%M:%S"` : $1 >> $Mon_log


}


#senderror sms to admin---------------------


sendSmsToAdmin()


{


CurTime=`date "+%Y-%m-%d %H:%M:%S"`


if [ $# -eq 1 ]; then


if [ ! -z "$1" ];then


tmpTime=`date "+%Y%m%d%H%M%S"`


for mobile in `cat $Admin_Mobile`


do


$SMS_Send -h $SMS_Server $mobile "$SMS_Header$1 not update-$tmpTime-$SMS_From"


done


fi


else


logwriter "call sendSmsToAdmin argus error"


fi


}


#check the lock file------------------------------------


getlastfile()


{


find $1 -name "$2`date "+%Y%m%d"`*.$3"|grep $2


if [ $? = 0 ];then


return 0


else


return 1


fi


}


# main ---------------


#检查锁文件


logwriter "backup check begin"


getLock


if [ $? = 0 ];then


#检查当日文件是否存在


getlastfile /eip_backup/autobk/yourdb/mysql yourdata tgz


if [ $? != 0 ];then


logwriter "yourdb not update!"


#发送告警短信


sendSmsToAdmin "yourapp"


fi


logwriter "yourappcheck over."


#清理90天前的备份数据


find /eip_backup/autobk/yourdb/mysql -name "yourdb*.tgz" -ctime +90 -print -exec rm {} ;


logwriter "delete yourdb file over."


logwriter "backup check over"

相关内容

    暂无相关文章