Rsysnc安装、配置教程:实现VPS主机文件备份同步

Rsysnc安装、配置教程:实现VPS主机文件备份同步,第1张

Rsysnc安装、配置教程:实现VPS主机文件备份同步

通常我们备份网站数据的方式是将网站文件和MysqL数据库打包,然后下载到本地或者放在网盘上。一旦需要恢复网站数据,再次将网盘或本地打包文件和MysqL数据库上传到网站服务器。这种网站备份方式对于中小型博客网站来说基本没有问题。

而大型网站的数据不仅数量众多,而且由于数据处于动态更新变化中,对数据备份要求较高,本地带宽有限,不可能将服务器上的文件全部下载到本地再上传进行一系列 *** 作。于是,很多人想到搭建一个网站的镜像服务器,同步更新服务器上的文件。

为您的网站服务器构建镜像服务器以进行同步和备份有两个主要好处:

一是可以实现24小时不间断备份,如果有服务器集群的话可以大大提高安全性能;

二是保证网站不宕机。一旦有服务器被攻击瘫痪,备用服务器可以立即激活,整个切换过程用户完全不知道,保证了良好的用户体验。

当然,要达到上述效果,不能只靠Rsysnc。inotify+rsync是我们常见的搭配组合,我们会在以后的文章中逐步分享。本文将分享Rsysnc的基本用法,以及如何在VPS主机上配置和使用。

Rsysnc实现VPS主机文件备份同步-Rsysnc安装、配置及 *** 作示例

一、Rsysnc安装方法

1.Rsysnc官网:

官方网站:https://rsync.samba.org/ftp/rsync/

2.在VPS主机上安装Rsysnc命令:

apt-getinstallrsync#Ubuntu安装yuminstallrsync#centos安装pacman-Srsync#archlinux安装//源码安装wgethttps://download.samba.org/pub/rsync/rsync-3.1.2.tar.gztarxfrsync-3.1.2.tar.gzcdrsync-3.1.2./configure--prefix=/usr/local/rsyncmakemakeinstall

3.Rsysnc启动服务:

rsync--daemon#指定配置文件/usr/bin/rsync--daemon--config=/etc/rsyncd/rsyncd.conf

4.如果您的Rsysnc配置文件有问题,您将报告一个错误。

5.在VPS主机的防火墙中打开端口873。

iptables-IINPUT-ptcp-mstate--stateNEW
-mtcp--dport873-jACCEPT

二。Rsysnc配置文件

1.Rsysnc有三个主要的配置文件:

1)rsyncd.conf是rsync服务器的主要配置文件。

2)rsyncd.secrets是登录rsync服务器的密码文件。

3)rsyncd.motd定义了rysnc服务器的信息,即用户登录信息。

2.执行以下命令创建rsyncd目录,并建立这三个配置文件:

mkdir/etc/rsyncdtouch/etc/rsyncd/rsyncd.conftouch/etc/rsyncd/rsyncd.secretschmod600/etc/rsyncd/rsyncd.secrets#设置权限touch/etc/rsyncd/rsyncd.motd

3.下一步是修改文件rsyncd.conf、rsyncd.secrets和rsyncd.motd。首先,rsyncd.conf配置示例代码显示:

#Minimalconfigurationfileforrsyncdaemon#Seersync(1)andrsyncd.conf(5)manpagesforhelp#Thislineisrequiredbythe/etc/init.d/rsyncdscriptpidfile=/var/run/rsyncd.pid#进程写到/var/run/rsyncd.pid文件中port=873#默认端口address=192.168.1.171#指定服务器IP地址#uid=nobody#gid=nobodyuid=rootgid=rootusechroot=yesreadonly=no#只读不让客户端上传文件到服务器上#limitaccesstoprivateLANshostsallow=192.168.1.0/255.255.255.010.0.1.0/255.255.255.0#允许的IP即白名单,中间用空格隔开hostsdeny=*maxconnections=5#最大允许的连接数motdfile=/etc/rsyncd/rsyncd.motd#用户登录时会看到rsyncd.motd中的信息#Thiswillgiveyouaseparatelogfilelogfile=/var/log/rsync.log#rsync服务器的日志#Thiswilllogeveryfiletransferred-upto85,000+peruser,persync#transferlogging=yeslogformat=%t%a%m%f%b#日志格式syslogfacility=local3timeout=300[freehao123]#模块名称path=/home#同步路径list=yesignoreerrorsauthusers=root#授权VPS登录用户,此用户必须是VPS已经存在的secretsfile=/etc/rsyncd/rsyncd.secrets#密码存储位置comment=freehao123home#注释随便填写exclude=beinan/samba/#排除上面的同步路径下的目录用空格隔开

4.rsyncd.secrets是存储密码的文件。格式如下:

Root:128138148#即用户名:密码

5.rsyncd.motd这是您连接到rsyncd时看到的信息。不是很重要,可以自己写点东西。

++++++++++++++++++++++++++++

freehao123.comrsync2002-2007

++++++++++++++++++++++++++++

三。Rsysnc的 *** 作方法

1.rsync是一个非常强大的工具,可以镜像保存整个目录树和文件系统,保留原文件的权限、时间、软硬链接等。可以用rsh,s-s-h传输文件,当然也可以通过直接socket连接。支持匿名传输,方便网站镜像。

2.无论是本地同步目录还是远程同步数据,第一次运行时都会复制一次所有文件,以后运行时只复制已更改的文件(对于新文件)或文件已更改的部分(对于原文件),即增量同步备份。让我们看看你的VPS是否成功打开了873端口。使用命令:iptables-L-nn。

3.“推”数据,即主动将数据从主服务器推送到备份服务器。这里使用SSH登录到备份服务器并推送数据。命令:

rsync-avz-e‘ssh-p1563′/home/test/
[email protected]:/oracle/data/

4.-p1563是指定的备份服务器端口。如果备份VPS的端口被修改,您可以在此指定。192.168.1.150是备份服务器的IP地址,/home/test/是主服务器的目录,后面是备份存储的文件目录。

5.“拉”数据。换另一台VPS主机,按照上面的方法安装rsync,然后执行下面的命令,输入刚刚设置的rsync用户密码,就可以实现文件的同步备份了。

[email protected]::freehao123freehao123k

6.上面的根是用来登录的VPS用户,107.191.105.136是我的VPS主机服务器,freehao123是模块名,freehao123k是我砖家的VPS的目录,用来存放备份。如果没有这样的目录,它将被自动创建。

7.完成后,您可以在备份VPS上看到同步的目录。

8.上面我们用的是avzP参数,详细说明如下:

-a–archive归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD-r–recursive对子目录以递归模式处理-l–links保留软链-p–perms保持文件权限-t–times保持文件时间信息-g–group保持文件属组信息-o–owner保持文件属主信息-D–devices保持设备文件信息-z–compress对备份的文件在传输时进行压缩处理-P–partial保留那些因故没有完全传输的文件,以是加快随后的再次传输-v–verbose详细模式输出-e–rsh=COMMAND指定替代rsh的shell程序-u–update仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。
(不覆盖更新的文件)–progress显示备份过程–delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。

9.如果想保持服务器和备份服务器之间的文件目录一致,我们可以添加–-delete选项,这样当你的备份服务器上的文件目录和主服务器的文件目录不一致时,就会直接删除。

rsync–[email protected]::freehao123freehao123k

四。Rsysnc自动定时同步

1.通过以上,我们已经知道了如何使用rsync。利用VPS的定时工具,可以实现rsync的自动定时备份。首先,我们需要在备份服务器上创建一个密码文件,这样rsync就可以在不输入密码的情况下自动同步。

touchrsync.passwordchmod600rsync.passwordecho"12345678">rsync.passwordrsync-avzP--delete--password-file=rsync.password
[email protected]::freehao123freehao123k

2.-password-file用于指定密码文件路径。Execute:crontab-e,编辑调度任务,添加以下代码,意思是每天1:10执行rsync同步备份任务。

101***rsync-avzP--delete--password-file=rsync.password
[email protected]::freehao123freehao123k

V.使用inotify-tools进行实时同步

1.以上仅实现自动定时同步。对于一些要求比较高的网站,可能需要实时同步。在这里,我们可以利用创新工具。您需要确保内核支持inotify,并安装inotify-tools和rsync。判断内核是否支持inotify方法如下:

###确保内核版本高于2.6.13,低于则需重新编译内核###root@mon11:~#uname-r3.2.0-64-generic###查看内核是否默认支持inotify—API###root@mon11:~#ll/proc/sys/fs/inotify/-rw-r--r--1rootroot0Sep1818:06max_queued_events-rw-r--r--1rootroot0Oct2010:24max_user_instances-rw-r--r--1rootroot0Sep1818:06max_user_watches###相关说明max_queued_events表示调用inotify_init时分配给inotifyinstance中可排队的event的数目的最大值,
超出这个值的事件被丢弃max_user_instances表示每一个realuserID可创建的inotifyinstatnces的数量上限max_user_watches表示每个inotifyinstatnces可监控的最大目录数量。如果监控的文件数目巨大,
需要根据情况,适当增加此值的大小,例如:echo"9000000">/proc/sys/fs/inotify/max_user_watches

2.安装inotify-tools的方法有(如果在安装过程中遇到“configure:error:noacceptableccompilerfoundin$path”的错误,需要安装gcc:yuminstallgcc):

wgethttp://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gztarxfinotify-tools-3.14.tar.gzcdinotify-tools-3.14/./configure--prefix=/usr&&make&&su-c'makeinstall'

3.inotify-tools监控某个文件目录变化的命令是:

/usr/bin/inotifywait-mrq--timefmt'%Y/%m/%d-%H:%M:%S'--format'%T%w%f'\-emodify,delete,create,move,attrib/root/tmp/

4.上面的命令表明/root/tmp目录及其子目录会被持续监视以发现文件更改。监控事件包括显示在屏幕上的文件修改、删除、创建、移动和属性更改。执行上述命令后,在/root/tmp下创建或修改文件会有信息输出信息。

5.如果遇到错误:/usr/bin/inotifyWait:加载共享库时出错:libinotifyTools.so.0:无法打开共享对象文件:没有这样的文件或目录,请使用以下方法解决:

32位系统:ln-s/usr/local/lib/libinotifytools.so.0/usr/lib/libinotifytools.so.064位系统:ln-s/usr/local/lib/libinotifytools.so.0/usr/lib64/libinotifytools.so.0

6.通过inotifywait监控目标文件上对应的事件,当事件被触发时开始同步。 *** 作命令如下:

root@mon11:/data/rsyncd#viminotifyrsync.sh#!/bin/bashhost=10.168.23.101src=/home/git/dst=Git_rsyncuser=git/usr/local/bin/inotifywait-mrq--timefmt'%d/%m/%y%H:%M'
--format'%T%w%f%e'-emodify,delete,create,attrib$src|whilereadfilesdo/usr/bin/rsync-avzP--exclude".gitolite/logs/*"--progress
--password-file=/etc/rsync.passwd$src$user@$host::$dst&>/dev/null&&echo"${files}wasrsynced">>/data/rsyncd/rsync.log2>&1doneroot@mon11:/data/rsyncd#chmod755inotifyrsync.shroot@mon11:/data/rsyncd#bashinotifyrsync.sh&

六。Rsysnc的使用总结

1.Rsysnc的安装相当方便。从2.6.13开始,Inotify就支持linux内核。通过Inotify可以监控文件系统中的添加、修改、移动等各种微小事件,Inotify-tools的第三方软件可以监控文件系统中文件的各种变化。

2.Rsysnc的同步备份速度非常快。如果是内网,基本不用考虑带宽。Rsysnc和Inotify-tools的配合可以实现不同VPS主机之间的数据同步镜像。对网站数据安全性有要求的集群网站可以采用这种方式。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/764870.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-02
下一篇 2022-05-02

发表评论

登录后才能评论

评论列表(0条)

保存