rsync 实现文件备份同步

[ rsync 实现网站的备份,文件的同步,不同系统的文件的同步,如果是 windows 的话,需要 windows 版本 cwrsync ]


一. 什么是 rsync

rsync,remote synchronize 顾名思意就知道它是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息。 rsync 是用 “rsync 算法” 提供了一个客户机和远程文件服务器的文件同步的快速方法,而且可以通过 ssh 方式来传输文件,这样其保密性也非常好,另外它还是免费的软件。

rsync 包括如下的一些特性:

  • 能更新整个目录和树和文件系统
  • 有选择性的保持符号链链、硬链接、文件属于、权限、设备以及时间等
  • 对于安装来说,无任何特殊权限要求
  • 对于多个文件来说,内部流水线减少文件等待的延时
  • 能用 rsh、ssh 或直接端口做为传输入端口
  • 支持匿名 rsync 同步文件,是理想的镜像工具



二. 架设 rsync 服务器

架设 rsync 服务器比较简单,写一个配置文件 rsyncd.conf 。文件的书写也是有规则的,我们可以参照 rsync.samba.org 上的文档来做。当然我们首先要安装好 rsync 这个软件才行。


2.1 rsync的安装

1. 获取rsync
rysnc 的官方网站:http://rsync.samba.org/ 可以从上面得到最新的版本。目前最新版是 3.1.2。当然,因为 rsync 是一款如此有用的软件,所以很多 Linux 的发行版本都将它收录在内了。

2. 软件包安装

sudo apt-get  install  rsync  # 在debian、ubuntu 等在线安装方法
yum install rsync    # Fedora、Redhat 等在线安装方法
rpm -ivh rsync       # Fedora、Redhat 等rpm包安装方法

其它 Linux 发行版,请用相应的软件包管理方法来安装。

3. 源码包安装

tar -zxvf  rsync-xxx.tar.gz
cd rsync-xxx
./configure --prefix=/usr  ;make ;make install  

注:在用源码包编译安装之前,您得安装 gcc 等编译开具才行


2.2 配置文件

rsync 的主要有以下三个配置文件 rsyncd.conf(主配置文件)rsyncd.secrets(密码文件)rsyncd.motd(rysnc服务器显示信息)

1. 服务器配置文件( /etc/rsyncd.conf ),该文件默认不存在,请创建它

具体步骤如下(以 root 身份创建吧~):

sudo mkdir /etc/rsyncd
sudo touch /etc/rsyncd/rsyncd.conf #创建rsyncd.conf,这是rsync服务器的配置文件
ln -s /etc/rsyncd/rsyncd.conf /etc/rsyncd.conf
sudo touch /etc/rsyncd/rsyncd.secrets  #创建rsyncd.secrets ,这是用户密码文件
chmod 600 /etc/rsyncd/rsyncd.secrets  #将rsyncd.secrets这个密码文件的文件属性设为root拥有, 且权限要设为600, 否则无法备份成功
touch /etc/rsyncd/rsyncd.motd
  • 如果 rsyncd.secrets 不设置为 600 则报如下错误:

password file must not be other-accessible


2. 修改 rsyncd.conf

rsyncd.conf 是 rsync 服务器主要配置文件。我们先来个简单的示例,后面在详细说明各项作用。

比如我们要备份服务器上的 /home/hadoop5/file1,在 /home 中我想把 file2 和 softwares 目录排除在外;

vim /etc/rsyncd/rsyncd.conf
# Distributed under the terms of the GNU General Public License v2
# Minimal configuration file for rsync daemon
# See rsync(1) and rsyncd.conf(5) man pages for help

# This line is required by the /etc/init.d/rsyncd script
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
secrets file = /etc/rsyncd/rsyncd.secrets 
motd file = /etc/rsyncd/rsyncd.motd

port = 873
address = 10.6.3.43
# uid = nobody
# gid = nobody   
uid = hadoop5
gid = hadoop5  


use chroot = no
read only = yes 

#limit access to private LANs
hosts allow=10.6.3.32 10.6.3.33 10.6.3.36 10.6.3.48 
hosts deny=*

# max connections = 0

#This will give you a separate log file
log file = /var/log/rsync.log

#This will log every file transferred - up to 85,000+ per user, per sync
#transfer logging = yes

log format = %t %a %m %f %b
syslog facility = local3
timeout = 300

[file1]  
path = /home/hadoop5/file1
list=yes
ignore errors
auth users = hadoop5
comment = This is Zephyr's Blog
exclude = file2/  softwares/     

注:关于 auth users 是必须在服务器上存在的真实的系统用户,如果你想用多个用户以 “,” 号隔开,比如auth users = hadoop5,root


3. 设定密码文件

密码文件格式很简单,rsyncd.secrets 的内容格式为:

用户名:密码

我们在例子中 rsyncd.secrets 的内容如下类似的;在文档中说,有些系统不支持长密码,自己尝试着设置一下吧。

vim /etc/rsyncd/rsyncd.secrets

添加如下:

hadoop5:hadoop5

修改属主和修改权限 (若已经是了,就无需修改了)

chown root.root /etc/rsyncd/rsyncd.secrets  
chmod 600 /etc/rsyncd/rsyncd.secrets     
  • 将 rsyncd.secrets 这个密码文件的文件属性设为 root 拥有, 且权限要设为 600, 否则无法备份成功! 出于安全目的,文件的属性必需是只有属主可读
  • 这里的密码值得注意,为了安全你不能把系统用户的密码写在这里。比如你的系统用户 hadoop5 密码是 123456,为了安全你可以让 rsync 中的 hadoop5 的明文密码为 hadoop5 。这和 samba 的用户认证的密码原理是差不多的。


4. 设定 rsyncd.motd 文件

它是定义 rysnc 服务器信息的,也就是用户登录信息。比如让用户知道这个服务器是谁提供的等;类似 ftp 服务器登录时,我们所看到的 linuxsir.org ftp ……。 当然这在全局定义变量时,并不是必须的,你可以用#号注掉,或删除;我在这里写了一个 rsyncd.motd的内容为:

vim /etc/rsyncd/rsyncd.motd

自定义添加如下:

+++++++++++++++++++++++
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值