异地备份同步校验脚本

实现功能:

将客户端服务器A的每天的数据(/www,/log)本地打包,并且配置定时脚本每天同步到服务端服务器上,在服务器上对备份的数据进行校验,将结果发送到管理员邮箱。

客户端:

#!/bin/bash
remote_host=172.16.1.111
remote_path=/backup
local_backup_path=/backup
local_file_path=/data
[-d $local_backup_path ]|| mkdir -p $local_backup_path
#打包
cd ${local_file_path}&& tar zcf $local_backup_path/www-$(date +%F).tar.gz /data/www && tar zcf $local_backup_path/log-$(date +%F).tar.gz /data/log && find /backup -type f -name "*.tar.gz"| xargs md5sum > $local_backup_path/flag_$(date +%F)
#同步
rsync -avz  $local_backup_path/*  $remote_host:$remote_path --passwod(省略)
#删除本地七天前
find $local_backup_path -type f -name "*.tar.gz"-mtime +7| xargs rm -f

  

加入定时任务

crontab -e
04***  /bin/bash /root/shell/www_backup.sh &>/dev/null

  

服务端:

#!/bin/bash
local_backup_path=/backup
md5_file=flag_$(date +%F)
cd $local_backup_path
if[ $?-eq 0];then
    if[-e $md5_file ];then
        md5sum -c ${md5_file}>> mail.txt
        if[ $?-eq 0];then
            mail -s "Success ! The backup task is ok !"[email protected] < mail.txt
        else
            mail -s "Failed ! The backup task is failed !"[email protected] < mail.txt
        fi
    else
        ls > mail.txt
        mail -s "Failed ! The md5_file is not exists!"[email protected] < mail.txt
fi

  

加入定时任务

crontab -e
05***  /bin/bash /root/shell/flag_check.sh &>/dev/null

  

来自为知笔记(Wiz)

时间: 2024-10-18 22:19:41

异地备份同步校验脚本的相关文章

远程异地备份禅道脚本

#!/bin/bash#远程异地备份禅道 set -e Back_time=date "+%Y-%m-%d %H:%M:%S"Now_time=date -d "now" +%Y-%m-%dThree_days_ago=date -d "3 days ago" +%Y-%m-%d Bak_path=/home/root_bak/zentao_bakApp_bak_path=/home/root_bak/zentao_bak/appMysql_ba

通过shell脚本实现对oracle RMAN备份集压缩并异地备份

1.背景说明 公司磁带库坏了..每天oracle的备份往哪里放? 2.备份方式重新规划 原备份方式 现备份方式 3.备份脚本分享 小白写了一个备份的shell脚本,分享出来 #!/bin/bash # tar oraclebackup file   # check RMAN is run? #我做RMAN备份的时候都会创建一个RMAN日志,所以此日志就可以判断我的RMAN是否执行了 filename="/mnt/rman/log/RmanBackup_`date +%y%m%d`.log&quo

远程异地备份gogs脚本

#!/bin/bash#远程异地备份gogs set -e Back_time=date "+%Y-%m-%d %H:%M:%S"Now_time=date -d "now" +%Y-%m-%dTwo_days_ago=date -d "2 days ago" +%Y-%m-%d Bak_path=/home/root_bak/gogs_bakRepositories_bak_path=/home/root_bak/gogs_bak/reposi

异地备份mongo

为了提升逼格,我决定使用英文版的的这句作为开头,尽管我最初想到的是中文版orz 天灾人祸这种事,总归是有的.尽管服务器的灾难性故障不常发生,概率也比遇到鬼或是遇到爱情来得高些,将风险考虑在内总归是好的,所谓有备无患.如果你已经在自己的架构中将单点故障考虑进去了,就不必往下拉啦,继续舔酸奶盖去吧~如果你的云服务商已经考虑了单点故障,你也没啥好做啦. 如果两者都没有,你应该请我喝杯星冰乐再往下拉. ps:我最近多是在处理性能优化,数据迁移,安全策略,系统稳定性这类事,简直是伪装成开发的运维orz 策

使用rsync做一个简单的异地备份

Rsync是一个非常简单和方便的小工具,而且也非常的适用:不仅可以用来方便的下拉文件,而且也可以用来作为数据备份的一个工具.下面我自己实验来搭建一个使用rsync作为备份工具. 实验一. A.     B两个linux系统服务器,服务器A作为网站服务器,上面有重要的数据需要实时备份:服务器B作为备份服务器,需要实时去将A服务器的数据和文件下载下来进行异地备份. A服务器ip :192.168.5.120 B服务器ip :192.168.5.147 1.  rsync的安装(此步骤非常的简单,可以

关于SQL异地备份的方法(转)

最近公司对服务器依赖越来越严重了,机房两台服务器,一台挂了一套餐饮系统.进销存系统,另一台挂了一套OA系统(老总的心血!),考虑到最近社会不太和谐,小偷泛滥,遂特别担心服务器上的数据安全,虽然做了本地备份,但在可恶的小偷面前~~~所以得赶紧做一下NetworkBacup比较妥当安全! 想了一个方案和网上的几个方案参考一下: 方案一:SQL自带的数据库备份计划 一:基本思路1:要实现异地备份,必须使用域用户帐号来启动SQL Server服务以及SQL Server Agent服务,因为本地系统帐户

sqlserver 备份文件管理,与异地备份

1.sqlserver 自动执行 exec ManagerDB.dbo.[del_bak] 备份DB ManagerDB.dbo.[del_bak] 相关脚本 参看 如下链接: http://dwchaoyue.blog.51cto.com/2826417/1439126 2.window 自动化任务 D:\script\Backup.bat 压缩文件 ,传送到备份服务器 文件 D:\script\Backup.bat 内容如下: rar a -k -r -s -m3     D:\WinRAR

备份校验两不误,MySQL自动备份还原校验设计详解

作者介绍庞阔,优朋普乐传媒运维基础部经理.负责数据库运营管理及平台设计开发,监控设计改进,问题跟踪处理,机房网络维护管理,目前四个专利已在专利局申请中.擅长数据库运维管理及Shell.Perl.PHP编写. 最近关于数据库故障出现的问题较多,不论大小公司对数据的备份要求都很高,但对校验数据备份的有效性要求更为迫切,很多公司对于自动备份和还原都已经形成体系,但对于还原后的备份有效性校验可能都不太完善,而且目前网上也没有较为完善的检验机制(可能我没找到). 对数据库备份的有效性校验的方法或样例选择,

SVN自动化备份、恢复脚本(下)

#!/bin/bash #本脚本是用来计算本地磁盘空间大小,并且与svn备份文件大小进行比较判断,当满足什么条件时,做出相应的响应. #第一步是检测svn服务器,svn数据文件的总量大小和本机磁盘剩余空间的大小. ##连接10.68.3.152服务器,查看最新svn文件大小,获取查看的值. datef() {         date "+%Y/%m/%d %H:%M" } password=xxxx2015 svnreport=/data/log/report_`date "