Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1176354
  • 博文数量: 573
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 66
  • 用 户 组: 普通用户
  • 注册时间: 2016-06-28 16:21
文章分类

全部博文(573)

文章存档

2018年(3)

2016年(48)

2015年(522)

分类: LINUX

2015-12-07 16:09:08

在solaris上使用rsync(1):实现两个server之间的文件传输

       rsync(remote synchronize)是一个远程数据同步工具,可通过 LAN/WAN 快速同步多台主机之间的文件,也可以使用 rsync 同步本地硬盘中的不同目录。它的出现主要是用于替代 rcp,rsync的优点是使用所谓的 rsync算法进行数据同步,这种算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。 您可以参考 How Rsync Works A Practical Overview 进一步了解 rsync 的运作机制。rsync 的初始作者是 Andrew Tridgell 和 Paul Mackerras,目前由 维护。它支持大多数的类 Unix 系统,无论是 Linux、Solaris 还是 BSD上 都经过了良好的测试。

  目前关于该命令在linux平台的介绍比较多,基于我在solaris平台的多年工作经验,在此以实现两个server文件的同步为例介绍其在solaris平台上的使用。关于rsync更多的文档,可以从其官网中获得/documentation.html。


1. 首先要准备两个安装solaris系统的server,这里我们要实现s2 test-rsync文件夹和s1 test-rsync文件夹的同步,s1是服务器端,s2是客户端。

【s1】

root@dmg7410a:~/test-rsync# uname -a

SunOS dmg7410a 5.12 on12 i86pc i386 i86pc

【s2】

root@petpig:~/test-rsync# uname -a
SunOS petpig 5.12 s12_33 i86pc i386 i86pc


2. 一般而言,备份通常是定时执行的,所以服务器端的rsync需要作为daemon来运行。首先我们通过编辑/etc/rsyncd.conf文件来对其进行配置,在初次安装rsync命令后,该文件是不存在,需要自己建立。命令如下:

root@dmg7410a:~/test-rsync# vi /etc/rsyncd.conf

# 首先定义rsync daemon相关的全局变量

uid = root  # 指定以什么身份可以访问文件目录

gid = root  # 指定以什么组身份可以访问文件目录

use chroot = yes   # 在文件传输之前,rsync daemon会chroot到path目录

max connections = 2 # 指定clients最多能同时用的连接来完成传输

pid file = /var/run/rsyncd.pid# 存放rsync daemon对应的进程数


# 全局变量定义完之后,定义模块相关的变量。一个模块对应一个目录级的文件操作

[uploads]  # 模块名

hosts allow = 10.113.197.196/24# 客户端的ip地址

hosts deny = 0.0.0.0/32# 黑名单

path = /root/test-rsync/# 模块对应的目录

ignore errors  # 指定是否在有IO错误的时候执行delete

read only = false  # 是否允许客户端上传文件

list = false  # 是否允许客户端显示这个模块

auth users = jiqiao# 指定允许建立连接的用户

secrets file = /etc/rsyncd.pwd# 验证用户身份的密码


3. 更多关于rsyncd.conf的配置请参考/ftp/rsync/rsyncd.conf.html。完成/etc/rsyncd.conf文件的修改之后,需要创建存放用户密码的文件/etc/rsyncd.pwd并将其属性改为700,以及存放rsync daemon进程号的文件/var/run/rsyncd.pid。


root@dmg7410a:~/test-rsync# cat /etc/rsyncd.pwd
jiqiao:123456

root@dmg7410a:~/test-rsync# chmod 700 /etc/rsyncd.pwd

root@dmg7410a:~/test-rsync# cat /var/run/rsyncd.pid

4. 运行rsync daemon



root@dmg7410a:~/test-rsync# rsync --daemon



至此,我们完成了服务器端的配置,接下来在客户端上进行传输。

5. 创建客户端传输时使用的密码文件/etc/rsyncd.pwd


root@petpig:~/test-rsync# cat /etc/rsync.pwd
123456

root@petpig:~/test-rsync# chmod 700 /etc/rsyncd.pwd

6. 传输文件



root@petpig:~/test-rsync# rsync -vrtL --progress /root/test-rsync/* jiqiao@dmg7410a.cn.oracle.com::uploads --password-file=/etc/rsync.pwd



sending incremental file list
test1.txt
          28 100%    0.00kB/s    0:00:00 (xfer#1, to-check=0/1)


sent 99 bytes  received 27 bytes  84.00 bytes/sec
total size is 28  speedup is 0.22


Done!

阅读(531) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~