注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

永福的技术博客

Linux运维

 
 
 

日志

 
 

rsync文件同步的两种方式:ssh协议和守护进程  

2013-02-28 12:01:53|  分类: 软件编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
1. rsync 基本命令模式
SYNOPSIS
       Local:  rsync [OPTION...] SRC... [DEST]

       Access via remote shell:
         Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
         Push: rsync [OPTION...] SRC... [USER@]HOST:DEST

       Access via rsync daemon:
         Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
               rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
         Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
               rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST

       Usages with just one SRC arg and no DEST arg will list the source files instead of copying.

总之一句话,rsync命令和cp等命令类似,将源文件复制(同步)到目标地址。
rsync -avz 源文件  目标地址

2. 利用ssh的方式进行rsync的文件同步:
2.1 密码方式:
[root@yongfu20 ~]# rsync -avz -e "ssh -l admin" --bwlimit=1000 223.4.134.12:/home/admin/yongfu_20130225.sql.tar.bz2 .       
admin@223.4.134.12's password:

命令说明: -a 表示保留需要同步文件的所有属性。
                 -v  表示显示详细的传输过程。
                 -z  表示以压缩的方式来传输文件。
                 -e  表示执行外部命令。这里表示使用ssh认证的方式对用户进行验证。
                 "ssh -l admin"  表示以admin用户ssh登录远程服务器( 223.4.134.12 )进行验证。
                 --bwlimit=1000     表示限速1M/s。
                 223.4.134.12:/home/admin/yongfu_20130225.sql.tar.bz2  表示源文件为223.4.134.12上的改文件。
                 . 表示当前目录。【不要忘记这个 “ . ” 的意义】
注意事项:记住这里223.4.134.12:/home/admin/yongfu_20130225.sql.tar.bz2只有一个冒号( : ),而且文件或目录需要是全路径,需要和服务端模式进行区别,服务端模式是两个冒号( :: )。

2.2 免密码输入方式:
[root@yongfu20 ~]# rsync -av -e "ssh -l admin -i /root/.ssh/id_rsa_admin" --bwlimit=1000 223.4.134.12:/home/admin/yongfu_20130225.sql.tar.bz2 .
与前面以这种方式传输相比,这种方式不需要手工输入密码,直接使用证书的方式认证。方便各种crontab计划任务的脚本运行,自动进行文件同步。

3. 利用守护进程的方式进行rsync的文件同步:【rsync服务器和客户端模式】
3.1 服务端配置:( 设ip为192.168.1.30)
3.1.1 主配置文件:
[admin@uhz002493 ~]$ cat /etc/rsyncd.conf 
uid = www
gid = www
max connections = 5
use chroot = no
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log

[yongfu_test]
path = /data/test
read only = false
hosts allow = 192.168.1.80,192.168.1.90
auth users = testuser
secrets file = /etc/rsyncd.secrets

3.1.2 用户身份验证文件(明文存储):
[root@uhz002493 ~]$ cat /etc/rsyncd.secrets 
testuser:sjlk123456yongfu

冒号之前表示用户:testuser
冒号之后表示密码,为明文存储
多个用户另起一行即可。
因为是明文存储,所以必须设置文件的权限为:600

3.2 客户端配置:(设ip为192.168.1.80)
客户端其实不用配置,只是需要建立一个密码文件即可(如: /etc/rsyncd_testuser.secrets )。
[root@yongfu80 ~]# cat /etc/rsyncd_testuser.secrets 
sjlk123456yongfu

该文件不需要在内容里写出用户名,只需要写明文密码即可,该密码必须与服务端的相同。
该密码文件的权限也必须是:600

3.3 注意事项: 需要开放出rsync的服务器端端口 873
3.4 命令:
3.4.1   rsync服务器端启动命令 rsync --daemon
3.4.2   rsync从远程同步文件到本地命令(客户端发起):
rsync -avz --password-file=/etc/rsyncd_testuser.secrets testuser@192.168.1.30::yongfu_test/ /data/yongfu/test 

--password-file 指定明码文件。
testuser@192.168.1.30::yongfu_test/ 表示已testuser用户登录到192.168.1.30进行用户验证,这个testuser用户不一定是192.168.1.30这个机器的真实用户,只需是rsync配置中的用户即可。
注意这里有两个冒号。
后面紧跟着的yongfu_test/ 表示启用服务器端中该段的配置。
即目录为 /data/test
拥有可读写权限
只允许192.168.1.80和192.168.1.90两个ip使用该段的rsync配置,其他ip不能进行文件同步。
用户为testuser
密码文件为:/etc/rsyncd.secrets

3.4.2   rsync从本地同步文件到远程服务器命令(客户端发起):
rsync -avz --password-file=/etc/rsyncd_testuser.secrets  /data/yongfu/test testuser@192.168.1.30::yongfu_test/ 

  评论这张
 
阅读(1573)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017