zoukankan      html  css  js  c++  java
  • 检查ftp备份数据完整性及短信告警的shell脚本

    发布:thebaby   来源:net     【  
    检查ftp备份数据完整性及短信告警的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
    }

    #send  error 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 "yourapp  check 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"

  • 相关阅读:
    android--------Popupwindow的使用
    virtualbox+vagrant学习-3-Vagrant Share-3-SSH Sharing
    virtualbox+vagrant学习-3-Vagrant Share-2-HTTP Sharing
    virtualbox+vagrant学习-3-Vagrant Share-1-简介
    virtualbox+vagrant学习-4-Vagrantfile-2-Configuration Version
    virtualbox+vagrant学习-4-Vagrantfile-1-简介
    virtualbox+vagrant学习-3-Vagrant Share-6-Custom Provider
    virtualbox+vagrant学习-3-Vagrant Share-5-Security
    virtualbox+vagrant学习-3-Vagrant Share-4-Vagrant Connect
    AOP
  • 原文地址:https://www.cnblogs.com/linuxnotes/p/3417360.html
Copyright © 2011-2022 走看看