当前位置: 首页 > news >正文

ftp备份服务器数据完整性检查并实现短信告警功能的shell

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

该脚本实现了对远程备份到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"


转载于:https://my.oschina.net/u/2408025/blog/540721

相关文章:

  • 二叉树遍历算法之二:中序遍历
  • The network connection was lost.
  • 网络编程使用代理方法 , 简化请求和响应
  • jsp的标签和EL表达式
  • DEBUG命令详细说明
  • 网页中多个图标在一张图片上,使用css将各图标显示
  • C++容易忽略的细节
  • vim+ctags+cscope 常用技巧和命令
  • IT公司100题-13-求链表中倒数第k个结点
  • Log aggregation has not completed or is not enabled.
  • linux安装scikit-learn
  • JavaMail:搜索、过滤接收邮件,删除邮件
  • 对JS继承的一点思考
  • 成为一名优秀的Developer的书单
  • HDU ACM 2586 How far away ?LCA-gt;并查集+Tarjan(离线)算法
  • Angular2开发踩坑系列-生产环境编译
  • CentOS6 编译安装 redis-3.2.3
  • es的写入过程
  • JavaScript 一些 DOM 的知识点
  • JavaScript异步流程控制的前世今生
  • leetcode98. Validate Binary Search Tree
  • Magento 1.x 中文订单打印乱码
  • Meteor的表单提交:Form
  • Vue全家桶实现一个Web App
  • 创建一个Struts2项目maven 方式
  • 新版博客前端前瞻
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 一天一个设计模式之JS实现——适配器模式
  • 用jquery写贪吃蛇
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • #Linux(Source Insight安装及工程建立)
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • (1)Nginx简介和安装教程
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (分类)KNN算法- 参数调优
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (接口自动化)Python3操作MySQL数据库
  • (九)c52学习之旅-定时器
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (算法二)滑动窗口
  • (一)基于IDEA的JAVA基础12
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (转)ORM
  • (转)用.Net的File控件上传文件的解决方案
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .net mvc 获取url中controller和action
  • .net 写了一个支持重试、熔断和超时策略的 HttpClient 实例池
  • .Net(C#)常用转换byte转uint32、byte转float等
  • .NET处理HTTP请求
  • .NET命令行(CLI)常用命令
  • .net实现客户区延伸至至非客户区
  • .net中的Queue和Stack
  • [.NET]桃源网络硬盘 v7.4
  • [【JSON2WEB】 13 基于REST2SQL 和 Amis 的 SQL 查询分析器