rdiff-backup远程备份脚本

任务:主机A存放备份的文件夹是/data/backup/主机B名称/axel_coin/,需要备份主机B的/roo/.axel/到存放备份的文件夹,每小时备份一次,将超过7天的备份删除,主机B也要备份主机A的文件夹。

脚本如下

#!/bin/bash

check_step() { #检测上一个命令执行是否成功,如果失败就发送邮件通知
if [[ $? == "0" ]]; then
:
else
echo " "|mail -s "failed rdiff-backup ${1}-${DATE}" ${MAILTO}
fi
}

#Script usage
if [ $# -ne 1 ];then #参数1是要备份的主机名或IP地址
echo "Usage: $0 remote-hostname"
exit 1
else
export PATH=${PATH}:/bin:/sbin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin
BACKUPFILE=/root/.axel #要备份的文件夹
KEEP_DAYS=7
REHOST="$1" #将参数1赋值给REHOST变量
BACKUPDIR="/data/backup/${REHOST}/axel_coin" #存放备份文件的文件夹
LOG=${BACKUPDIR}/rdiff-backup-data/backup.log #日志文件,改文件由rdiff-backup在备份的时候生成
BAC_USER="gback" #备份用户br/>MAILTO="[email protected]"
DATE=date +%Y%m%d%H%M%S
exec &>/tmp/.backupaxel
fi

#$DIR directory exists ? #判断存放备份的文件夹是否存在
if [ ! -d "$BACKUPDIR" ];then
mkdir -p "$BACKUPDIR" #由于是在根目录创建文件夹,一般用户没有权限,通过puppet创建
fi

#Ridff-backup #执行rdiff-backup远程备份
/usr/bin/rdiff-backup --print-statistics --remote-schema ‘ssh -C %s "sudo /usr/bin/rdiff-backup --server"‘ ${BAC_USER}@${REHOST}::${BACKUPFILE}/ ${BACKUPDIR}/
check_step #调用检测命令是否执行成功的函数

#View backup log
Num=tail -5 ${LOG}|awk ‘/Error/{print $2}‘ #查看最新产生的日志中的error字段的值是多少
if [ $Num -ne 0 ];then #如果error的值不为0,就邮件通知
tail -5 ${LOG}|mail -s "failed rdiff-backup ${1}-${DATE}" ${MAILTO}
fi

#Clear backup before 7 days #删除超过7天的备份
rdiff-backup --remove-older-than 7D ${BACKUPDIR}

echo $?

puppet的配置

file { ‘/data/backup‘: #为备份用户创建文件夹,确保权限,这样用户可以创建子文件夹了
ensure => ‘directory‘,
owner => ‘gback‘,
group => ‘gback‘,
mode => ‘0755‘,
}

include profile::sudo::gback #sudo的配置,让用户可以免密码使用rdiff-backup命令

package {‘rdiff-backup‘: ensure => ‘present‘,} #确保远程主机上安装了rdiff-backup软件

file { ‘/usr/local/bin/backup_axel_coin.sh‘: #将备份脚本分发到备份主机,存放目录是/usr/local...........
owner => ‘root‘,
group => ‘root‘,
mode => ‘0755‘,
source => ‘puppet:///modules/profile/backup_axel_coin.sh‘,
}

file { ‘/etc/cron.d/backup_axel_coin‘:    #设置cron,每小时执行一次,$1写的就是备份的主机名
owner   => ‘root‘,
group   => ‘root‘,
mode    => ‘0644‘,
content => "0 * * * * gback /usr/local/bin/backup_axel_coin.sh **$1** 1>/dev/null 2>&1  \n"

}

rdiff-backup远程备份脚本

原文地址:https://blog.51cto.com/pkimin3/2403310

时间: 2024-08-29 23:39:01

rdiff-backup远程备份脚本的相关文章

mysql(mariadb)定时自动热备份+增量+远程备份脚本

优点:热备份,不影响业务,增量备份,远程备份. 目的:自动打包备份到远程10.0.0.111备份服务器 前提: 1.安装xtrabackup yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm yum install percona-xtrabackup-22 2.创建目录 mkdir -p /data/backup mkdir -p

tomcat集群日志切割和远程备份脚本分享

笔者一共有3台tomcat服务器,一共4个tomcat服务,未来还会增加4个作为负载,笔者想通过在存储服务器对tomcat服务的日志进行远程切割和备份到存储上. 文中采用清空日志的方式,优点是不用重启tomcat就能回收磁盘空间,缺点可能会丢失一小部分日志内容,所以笔者定时在了夜里3点执行. 本文中远程执行命令和scp用到了expect脚本,请查看expect的博文http://www.cnblogs.com/Eisenhower/p/7900907.html 1 2 3 4 5 6 7 8 9

Linux Shell脚本之Atlassian confluence远程备份方法

注:Atlassian confluence是一个较专业的wiki程序,由java语言写成,其详细介绍可以Google it(一点美中不足,java占用内存还是比较大的). 该脚本的设计思路是根据Atlassian confluence官方提供的文档说明写的,主要是备份一些配置文件,上传的一些附件之类的其他文件以及数据库,其数据库支持多种数据库,这次我采用的是PostgreSQL数据库,你可以使用自己熟悉的数据库,如MySQL. 问题释疑: 1.为什么不使用rsync而是使用scp作为远程文件传

Linux Shell脚本之Gitlab远程备份

注:Gitlab是一个git服务程序,有web图形界面和一系列管理工具,具体详细介绍可以Google it. 这一篇可以说是上一篇<Linux Shell脚本之Atlassian confluence远程备份方法>的姊妹篇.其说明和原理是和上一篇是一样的,其核心原理都是core dump.scp.ssh和find+rm,但也有不同. 1.Gitlab本身提供了较好的备份方法,只是一个命令那么简单,并且它也支持远程备份(远程存储和云存储),例如它可以存储到aws的s3上. 2.本脚本运行在Git

LinuxShell脚本之利用rsync+ssh实现Linux文件系统远程备份

功能介绍: 该脚本用于定期(结合crontab一起使用)将本地目录通过rsync+ssh传输到远程服务器,每次执行都生成一个带有以时间命名的目录,并且当前最新版本的数据链接到一个名字叫current的符号链接上,便于查找和恢复.在数据传输完成前,会传输到临时目录下,这个临时目录被命名为"时间-incomplete".超过10天的备份将被删除,超过10天的日志文件也将被删除. 运行原理: 脚本运行的核心就在于ssh的互信和rsync命令.利用rsync能实现压缩传输,节省传输时间. 感谢

Windows 2008下 rman backup scirpts(备份脚本)--已经在生产环境下通过验证

一.任务计划 windows -控制面板-管理工具-计划任务程序,右击"任务计划程序库","创建任务" 二:相关脚本中的内容: 2.1  back_rman.bat中的内容: set ORACLE_SID=FS F:\oracle\product\10.2.0\db_1\BIN\rman target / cmdfile=H:\worksql\windows_backupscript\backup.rcv log=H:\worksql\windows_backups

利用腾讯云COS云对象存储定时远程备份网站

版权声明:本文由张戈 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/942851001487125915 来源:腾云阁 https://www.qcloud.com/community 一.优点分析 内网传输:和阿里云OSS一样,腾讯云COS同样支持内网和外网文件传输,对于腾讯云服务器,使用内网传输绝对是最快.最稳定的备份方案! 免费方案:看了下腾讯云COS的定价说明,发现对于备份网站来说简直是绝佳搭档,甚至可以说是钻

SQL远程备份

原文:SQL远程备份 set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go -- ============================================= -- Author: dcrenl -- Create date: 2013-9-5 9:54:46 -- Description: WEB服务器远程备份数据库, --此方法需要打开WEB服务器的共享功能. --验证方法同一局域网其它机器里在运行里输入 \\IP\C$ 要求输入用户名和密

linux自动备份文件 并上传到远程服务器 脚本实现

(1)在服务器上创建备份目录,并赋予权限 mkdir -p /backup/bakdata  #新建数据备份目录(2)完成备份脚本操作新建脚本文件      vi bakdata.sh添加以下内容: #!/bin/sh     dateTime=`date +%Y_%m_%d`    #当前系统时间     days=7    #删除7天前的备份数据s     orowner=bakuser   # 备份到此用户下     bakdescdir=/DATA/bakmdata     #备份文件到