Ubuntu下使用rsync远程备份数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ubuntu下使用rsync远程备份数据相关的知识,希望对你有一定的参考价值。

参考技术A 我有3台ubuntu服务器,work_svr1、work_svr2为在公网运行的工作用服务器,1上运行着工作用的webapp,2作为备份服务器备。另外还有一台个人租用的异地服务器做博客服务器用。我希望工作用1号服务器上数据和个人博客服务器数据可以每天定时备份到2号服务器上。

rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。 rsync是一个功能非常强大的工具,其命令也有很多功能特色选项,我使用了其中3个选项,详细的选项使用说明可以使用man命令查看。

ssh免密码自动登录,这样在自动定时远程备份时,就可以不需输入ssh登录密码。
首先在客户端服务器 A 为用户 a 生成公钥(passphrase不需要输入):

接下来以用户 b 的身份ssh登录 B 创建 ~/.ssh 目录(有可能这个目录已经存在了):

最后把客户端 A 的公钥附加到 B 端 authorized_keys 文件中:

现在不需输入密码就可以登录 B 了:

最后设置一下 crontab -e 定时任务,ok。

此文部分参考了这篇 rsync 和这篇 ssh 的内容。

Rsync 搭建远程容灾备份系统

rsync是什么?

rsync是Linux/UNIX系统下的文件同步和数据传输工具,它采用了“rsync算法”使一个客户机和远程文件服务器之间的文件同步。可以将同一个服务器的数据从一个分区备份到另一个分区,也可以将本地系统的数据通过网络传输方式备份到任何一个远程主机上;rsync可以在中断后恢复传输;rsync只传输源文件和目标文件之间不一致的部分;rsync可以执行完整备份或增量备份。

rsync的功能特性:

  • 可以镜像保存整个目录树和文件系统;
  • 可以增量同步数据,文件传输效率高,因而同步时间很短;
  • 可以保持原文件的权限、时间等属性;
  • 加密传输数据,保证了数据的安全性;
  • 可以使用rcp、ssh等方式来传输文件;
  • 支持匿名传输;

搭建远程容灾备份系统

需求描述: 要求对Web服务器网站数据每分钟进行一次备份数据到远程的容灾服务器上,由于数据量很大,采用增量备份方式。

系统环境:

主机 操作系统 IP地址 备份目录 软件包
web服务器 CentOS 7.0 x86_64 192.168.100.27 /www rsync-3.1.3.tar.gz
容灾服务器 CentOS 7.0 x86_64 192.168.100.28 /www rsync-3.1.3.tar.gz

软件包:rsync-3.1.3.tar.gz 密码:iw95

一、Web服务器:

1.安装rsync软件包

#解压
tar zxvf rsync-3.1.3.tar.gz
#切换目录
cd rsync-3.1.3
#配置
./configure
#编译及安装
make && make install

2.修改rsync配置文件:

/etc/rsyncd.conf

uid = nobody #用户ID
gid = nobody #用户组ID
use chroot = no
max connections = 10 #最大并发连接数,默认0(无限制)
strict modes=yes #是否检查口令文件的权限,yes时必须为root用户权限
pid file = /var/run/rsyncd.pid #守护进程PID路径
lock file=/var/run/rsync.lock #指定支持max connections的锁文件
log file=/var/run/rsyncd.log #日志输出文件路径

[www] #模块名称
path = /www #需备份的文件或目录,必设项
comment = ftp area #描述文字
ignore errors #可以忽略一些无关的I/O错误
read only=no #no:客户端可以上传文件 yes:只读
write only=no #no:客户端可以下载文件 yes:不能下载
hosts allow= #:允许连接任何主机
hosts deny=192.168.100.10 #禁止连接rsync服务器的IP
list=false #客户端请求可以使用的模块列表时,该模块是否被列出
uid=root
gid=root
auth users=backup #用户名backup,与系统用户没有任何关系
secrets file=/etc/server.pass #只有定义了auth users项,该文件才起作用,默认没有此文件,须手动创建(文件格式为:"用户名:密码")

技术分享图片

3.新建密码文件(文件格式:user:pass)

/etc/server.pass

> backup:www123

修改密码文件权限

chmod 600 /etc/server.pass

4.启动rsync守护进程

/usr/local/bin/rsync --daemon       

5.查看rsync进程

ps -ef | grep rsync

技术分享图片

二、容灾服务器:

1.安装rsync软件包

#解压
tar zxvf rsync-3.1.3.tar.gz
#切换目录
cd rsync-3.1.3
#配置
./configure
#编译及安装
make && make install

2.新建密码文件

vim /etc/server.pass

www123 //同web服务器密码一致

修改密码文件权限

chmod 600 /etc/server.pass

3.添加计划性任务

crontab -e

#每分钟同步一次数据

          • /usr/local/bin/rsync -vzrtopg --delete --progress --exclude "access" --exclude "debug*" [email protected]::www /www --password-file=/etc/server.pass

测试结果

技术分享图片

技术分享图片

以上是关于Ubuntu下使用rsync远程备份数据的主要内容,如果未能解决你的问题,请参考以下文章

Linux下数据备份命令scp、rsync和后台运行

Linux下的rsync远程增量备份详解

Rsync

Rsync 搭建远程容灾备份系统

rsync如何同步单个文件到服务器上,使用rsync命令将备份同步到远程服务器的四个简单步骤...

Linux Rsync备份服务介绍及部署守护进程模式