全部博文(573)
分类: LINUX
2015-12-07 16:09:08
目前关于该命令在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。
4. 运行rsync daemonroot@dmg7410a:~/test-rsync# cat /etc/rsyncd.pwd
jiqiao:123456root@dmg7410a:~/test-rsync# chmod 700 /etc/rsyncd.pwd
root@dmg7410a:~/test-rsync# cat /var/run/rsyncd.pid
root@dmg7410a:~/test-rsync# rsync --daemon
5. 创建客户端传输时使用的密码文件/etc/rsyncd.pwd
6. 传输文件root@petpig:~/test-rsync# cat /etc/rsync.pwd
123456root@petpig:~/test-rsync# chmod 700 /etc/rsyncd.pwd
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!