Centos 5.8 搭建rsync服务器

对于任何一个互联网公司来说,数据的备份都是很重要的。

原创博文来自:www.51niux.com  博主:忙碌的柴少

我们的生产环境是这样的,我们有数百台的服务器,然后在云主机机房有几台实体服务器,空间大小都是10T,云主机当然一般硬盘空间都较小不适合做备份服务器,这时候我就打起了实体机的注意,当然也只能打他们的主意了。

在把数据传输到实体机硬盘的情况下我们罗列一下我们的数据传输策略:

第一个方案:scp方案

个人认为,如果是单独的文件,比如像传输数据库的全备压缩包这种文件的话,每台要传输的服务器把自己的公钥发送给实体机就可以了。

但是我们是数百台服务器,除了每天要备份数据库的压缩文件以外,还有log日志,还有配置文件目录,还有每天更新的代码程序,每天程序去网上抓取的各种资源,一想就很庞大,显然很多东西就不能全备份了。

第二个方案:nfs方案

我们搞一个空间比较大的存储盘做成共享存储,nfs挂载到各个服务器上面。有人会说了,服务器都要有写权限啊,那你其他服务器把备份放到NFS服务器上面,岂不是也会被其他服务器读取和写入了嘛。我们可以nfs服务器以服务器主机名称搞一群分目录挂载过去,比如说你是10.1.15.96服务器,我就给你在我的NFS服务器总目录/data下面创建一个10.1.15.96的分目录挂载过去,这样问题解决了。但是问题又来了,你要想增量备份还是需要rsync,而且如果服务器少的话还可以分目录,那如果有100多台服务器呢,你是不要整一百台个分目录。

第三个方案:rsync服务器

由于我们的现实环境,我们有数百台服务器,我们就直接搭建rsync服务器,采取数据库压缩包全量传输,bin-log二进制等文件增量备份(对于mysql而言还可以采取主从复制的形式做数据备份),其他配置目录增量备份的形式。

既然通过层层排除觉得采取这个方案,那就要好好规划一下:

1. rsync服务器开启防火墙,只允许跳板机可以通过22端口访问过来,只对某个网段开放873端口,设置成禁止root远程访问,只允许key登录。这样我们从外部层面对rsync服务器进行了安全加固。

2. rsync服务器在配置的时候设置多个目录模块对应着各个服务器并做限定,只允许某个服务器对此目录进行rsync传输,这时候可能会问你岂不是也要建立很多个分目录,其实这个要跟实际需求来的,很多服务器上面的数据是不怎么变化的,很多服务器上面的数据可能不重要只要有几个全备就可以了,只对那些关键数据进行单个目录模块设置,可以再做一些共享目录模块,设置好允许那些ip来访问。

3. 数据的多点备份,如果我们有一台服务器被攻破了,如10.1.15.99这台服务器,每天都会执行rsync把数据增量放到自己独立的目录中去,这时候这台服务器被攻破了执行了个rsync -avz -delete /tmp/ ,坏了你辛辛苦苦备份的东西直接就给你清了。我感觉你可以把监控跟rsync运用起来,比如再搞一个存储每天晚上增量从rsync服务器上面往下拷贝数据,写一个脚本,设置一个阀值,去判断要拷贝的那个目录大小,如果小于某个阀值,就不做rsync -delete操作了,这样我们服务器除了自己备份数据以外,还有另外两台存储备份数据。当然细节方面还可以根据实际条件调节。

说多了,干什么还是根据实际情况来,具体环境考虑什么方案。

下面是rsync服务器以及客户端的搭建过程:

环境:操作系统 Centos 5.8  Rsync服务器:10.1.15.96 rsync客户端:10.1.15.97和10.1.15.238

1). 搭建rsync服务器

第一步:检查本机是否有rsync服务,一般装系统都自带

[[email protected] ~]# rpm -qa|grep rsync  #如果没有请yum下载。
rsync-3.0.6-4.el5_7.1

第二步,生成相关文件

[[email protected] rsyncd]# mkdir /etc/rsyncd #用来存放密码文件的目录以及密码用的目录

[[email protected] rsyncd]# vi /etc/rsyncd.conf
port = 873    #设置监听端口
uid = root   #制定传输文件的用户名
gid = root   #制定传输文件的密码
use chroot = ture   #若为 true,则 rsync 在传输文件之前首先 chroot 到 path 参数所指定的目录下。这样做的原因是实现额外的安全防护,但是缺点是需要 root 权限,并且不能备份指向 path 外部的符号连接所指向的目录文件。
read only = no    #可以写,yes是只能读
hosts allow = 10.124.0.0/24  #允许那些ip网段访问
hosts deny = *  #拒绝剩下的所有ip
pid file = /var/run/rsyncd.pid  #指定rsyncd服务器的pid文件
secrets file = /etc/rsyncd/rsyncd.passwd   #指定rsyncd.passwd的密码文件
log file = /etc/rsyncd/rsync.log  #制定rsync.log的传输日志,建议每天生成新的文件定时清理
transfer logging = yes   #使 rsync 服务器将传输操作记录到传输日志文件,你人false
log format = %t %a %m %f %b  #定义指定传输日志文件的字段。
timeout = 300  #定义超时时间300秒
[10.1.15.238]
path = /data2/10.1.15.238
list = no  #不列出文件列表
ignore errors  #忽略io错误
auth users = admin
hosts allow = 10.1.15.238
hosts deny = *
secrets file = /etc/rsyncd/10.1.15.238/rsyncd.passwd

[10.1.15.97]
path = /data2/10.1.15.97
list = no
ignore errors
auth users = admin
hosts allow = 10.1.15.97
hosts deny = *
secrets file = /etc/rsyncd/10.1.15.97/rsyncd.passwd

第三步:按照配置文件的目录生成目录和文件

[[email protected] rsyncd]# ls -l /data2/
total 24
drwxr-xr-x 5 root root  4096 Mar 25 17:51 10.124.19.97
drwxr-xr-x 3 root root  4096 Mar 25 17:48 10.124.32.238

[[email protected] rsyncd]# ls -l /etc/rsyncd
total 24512
drwxr-xr-x 2 root root     4096 Mar 25 17:43 10.1.15.97
drwxr-xr-x 2 root root     4096 Mar 25 17:19 10.1.15.228

[[email protected] rsyncd]# cat /etc/rsyncd/10.1.15.97/rsyncd.passwd   #文件内容是用户名:密码
admin:123456  #密码要复杂点

chmod 600 rsyncd.passwd #必须600授权不然成功不了

第四步,启动rsync服务

[[email protected] rsyncd]# /usr/bin/rsync --daemon &

下面是我存储的空间结构:

第五步:添加防火墙规则

[[email protected] rsyncd]# cat /etc/sysconfig/iptables|grep 873
-A RH-Firewall-1-INPUT -s 10.1.15.0/24 -p tcp -m tcp --dport 873 -j ACCEPT
[[email protected] rsyncd]# /etc/init.d/iptables restart

2).rsync客户端的配置

[[email protected] .ssh]# cat /etc/rsyncd.passwd    #生成只有密码的配置文件
123456

[[email protected] backup]# chmod 600 /etc/rsyncd.passwd

客户端防火墙不用添加规则:

[[email protected] .ssh]# cat /etc/sysconfig/iptables|grep 873
[[email protected] .ssh]#

rsync -avz --delete /data/backup [email protected]::10.1.15.97 --password-file=/etc/rsyncd.passwd  #真实IP地址能给大家看哈不好意思
  #这表示成功了哈,没有error报错。

那么我们试试看往另一个模块里面传输文件试试:

[[email protected] .ssh]#  rsync -avz /data/backup  [email protected]::10.1.15.238 --password-file=/etc/rsyncd.passwd  #这是我们设置的另一个模块
@ERROR: Unknown module ‘10.1.15.238‘  #报错失败了
rsync error: error starting client-server protocol (code 5) at main.c(1530) [sender=3.0.6]

我们切换到10.1.15.238上面传输一下试试,看看是服务器端的问题还是我们设置成功了:

[[email protected]@uusee ~]$ ssh 10.1.15.238
Last login: Wed Mar 25 17:57:15 2015 from

[[email protected]_238 backup]# rsync -avz xhrdb_2015-03-26-00.sql.gz  [email protected]::10.1.15.238 --password-file=/etc/rsyncd.passwd

sending incremental file list
xhrdb_2015-03-26-00.sql.gz
sent 331654361 bytes  received 27 bytes  3267530.92 bytes/sec   #这状态是成功的

最后一步:添加定时任务

[[email protected]_218 backup]# cat /var/spool/cron/root |grep rsync
#mysql_rsync
0 1 * * * rsync -avz  /data/backup/  [email protected]::10.1.15.238/mysql_backup/ --password-file=/etc/rsyncd.passwd

剩下的就按照自己的思路部署线上环境吧,有点乱哈!

原创博文来自:www.51niux.com  博主:忙碌的柴少

链接:http://www.cnblogs.com/mchina/p/2829944.html讲的很详细

时间: 2024-10-01 02:49:11

Centos 5.8 搭建rsync服务器的相关文章

CentOS 6.4 搭建git 服务器

CentOS 6.4 搭建git 服务器 (2013-11-22 19:04:09)转载▼ 标签: it 分类: Linux 此文件是依据markdown所编写,更好效果参见本人github的文档https://github.com/jackliu2013/recipes/blob/master/doc/linux/CentOS_6.4_git服务器搭建.md ##CentOS安装Git服务器 Centos 6.4 + Git 1.8.2.2 + gitosis## 1.查看Linux系统服务器

Linux Centos 6.6搭建SFTP服务器

在Centos 6.6环境使用系统自带的internal-sftp搭建SFTP服务器. 打开命令终端窗口,按以下步骤操作. 0.查看openssh的版本 1 ssh -V 使用ssh -V 命令来查看openssh的版本,版本必须大于4.8p1,低于的这个版本需要升级. 1.创建sftp组 1 groupadd sftp 2.创建一个sftp用户,用户名为mysftp,密码为mysftp 修改用户密码和修改Linux用户密码是一样的. useradd -g sftp -s /bin/false

fedora 20 与 centos 6.5 搭建openldap服务器心得

目标:使用ldap做为系统用户的数据目录,基于web管理ldap数据. 安装 使用 YUM 安装方式 ,由于要使用web方式管理LDAP服务器,也要安装APACHE.PHP和ldap相关的软件包,要想通过ldap验证用户,一定要安装nss-pam-ldapd和pam_ldap.web管理使用ldap-account-manager或phpldapadmin,lam和phpldapadmin可以直接用rpm包安装.centos 6.5 使用openldap 2.4.23, fedora 使用ope

CentOS 6.3下rsync服务器的安装与配置[转]

CentOS 6.3下rsync服务器的安装与配置 一.rsync 简介 Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件,也可以使用 Rsync 同步本地硬盘中的不同目录. Rsync 是用于取代rcp的一个工具,Rsync使用所谓的 “Rsync 算法” 来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快.您可以参考 How Rsync Works A Prac

CentOS 7.4搭建DNS服务器实现主从同步

CentOS 7.4搭建DNS服务器实现主从同步相关概念:正向解析:将域名解析成IP地址反向解析:将IP地址解析成域名第一步:准备工作systemctl stop firewalld //关闭防火墙setenforce 0 //关闭selinuxyum install bind //安装DNS服务第二步:编辑配置文件1.编辑主配置文件vi /etc/named.conf //主配置文件options {listen-on port 53 { 192.168.80.101; }; //改成自己服务

【转载】CentOS 6.3下rsync服务器的安装与配置

一.rsync 简介 Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件,也可以使用 Rsync 同步本地硬盘中的不同目录. Rsync 是用于取代rcp的一个工具,Rsync使用所谓的 “Rsync 算法” 来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快.您可以参考 How Rsync Works A Practical Overview 进一步了解 rsync

CentOS 6.3下rsync服务器的安装与配置

一.rsync 简介 Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件,也可以使用 Rsync 同步本地硬盘中的不同目录. Rsync 是用于取代rcp的一个工具,Rsync使用所谓的 “Rsync 算法” 来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快.您可以参考 How Rsync Works A Practical Overview 进一步了解 rsync

在阿里云主机上基于CentOS用vsftpd搭建FTP服务器

最近需要在一台阿里云的云服务器上搭建FTP服务器,在这篇博文中分享一下我们根据实际需求进行的一些配置. ftp软件用的是vsftpd. vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序.特点是小巧轻快,安全易用. vsftpd 的名字代表"very secure FTP daemon",安全是它的开发者 Chris Evans 考虑的首要问题之一.在这个 FTP 服务器设计开发的最开始的时候,高安全性就是一个目标. 准备工作 安装vsftpd yum install v

CentOS下快速搭建SVN服务器

不说原理,只讲步骤,用最快捷的方法把服务搭建起来. 1.本文使用的系统环境# uname -r 2.6.32-642.11.1.el6.x86_64# cat /etc/system-releaseCentOS release 6.8 (Final) 2.更新系统# yum -y update 3.安装subversion,并查看安装状态# yum -y install subversion# rpm -ql subversion 可以输入命令试试# svn --help 4.配置系统服务创建版