Ubuntu系统配置rsync文件同步服务

有运维或运维开发方面的需求,可以联系博主QQ 452336092或Email:admin#centos.bz(收费)

文章目录
[隐藏]

简介

rsync(remote synchronize)是类unix系统下的实现远程数据同步功能的工具,它的特性如下:

  • 可以镜像保存整个目录树和文件系统
  • 可以很容易做到保持原来文件的权限、事件、软硬链接等信息
  • 无需特殊权限即可安装
  • 快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件。rsync 在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。
  • 安全:可以使用scp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
  • 支持匿名传输,以方便进行网站镜象。

安装

Ubuntu下安装rsync通过以步骤可以实现:

sudo apt-get install rsync xinetd

默认情况下Ubuntu安装了rsync,因此只需安装xinetd

服务器端配置

1、 编辑/etc/default/rsync 启动rsync作为使用xinetd的守护进程

# 打开rsync
sudo vim /etc/default/rsync
# 编辑rsync
RSYNC_ENABLE=inetd

2、 创建/etc/xinetd.d/rsync, 通过xinetd使rsync开始工作

# 创建并打开文件
sudo vim /etc/xinetd.d/rsync
# 编辑内容
service rsync
{
    disable         = no
    socket_type     = stream
    wait            = no
    user            = root
    server          = /usr/bin/rsync
    server_args     = --daemon
    log_on_failure  += USERID
}

3、 创建/etc/rsyncd.conf,并填写配置信息

# 创建并打开文件
sudo vim /etc/rsyncd.conf
# 编辑配置信息
max connections = 2
log file = /var/log/rsync.log
timeout = 300

[share] # 模块名
comment = Public Share
# path为需要同步的文件夹路径
path = /home/share
read only = no
list = yes
uid = root
gid = root
# 必须和 rsyncd.secrets中的用户名对应
auth users = user
secrets file = /etc/rsyncd.secrets

4、 创建/etc/rsyncd.secrets,配置用户名和密码.

# 创建并打开文件
sudo vim /etc/rsyncd.secrets
# 配置用户名和密码,密码可以任意设置
user:password

5、 修改rsyncd.secrets文件的权限

sudo chmod 600 /etc/rsyncd.secrets

6、 启动/重启 xinetd

sudo /etc/init.d/xinetd restart

客户端配置

由于我用的系统是windows,所以需要在windows上安装rsync的客户端cwRsync

1、 下载并安装cwRsync

下载地址http://pan.baidu.com/s/1pJ3B1FX

2、 安装后将其添加到环境变量path中,我的cwRsync安装在D:\cwRsync目录下,将D:\cwRsync\bin添加到环境变量path中

测试

在客户端运行下面的命令检查,确认rsync配置成功

# user是在服务器中rsyncd.secrets文件中配置的用户名
# xx.xx.xx.xx 是服务器的ip地址,也可以填写服务器对应的域名
# share 是rsyncd.conf中定义的模块
rsync user@xx.xx.xx.xx::share

输入密码后,如果输出以下类似内容,说明配置成功

drwxr-xr-x        4096 2006/12/13 09:41:59 .
drwxr-xr-x        4096 2006/11/23 18:00:03 folders

同步

1、 将本地文件同步至服务器

将当前目录下public路径下的全部内容,同步至服务器,服务器的同步路径在rsyncd.conf中指定

rsync -av ./public/ user@xx.xx.xx.xx::share

2、 将服务器文件同步至本地

rsync -cvazu --progress user@xx.xx.xx.xx::share /rsyn

原文出处:segmentfault -> https://segmentfault.com/a/1190000010310496

打赏

如果此文对你有所帮助,请随意打赏鼓励作者^_^