shell 学习笔记(四)

 rsync 
===

rsync  是一款远程同步软件 远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息  。

它采用C/S的方式进行同步,有人测试首次同步的时候速度较慢,后面同步的时候只同步更改的文件。(这让我想到git,当然他们的目的不一样)

问题1:在什么情况下用它?
问题2:如何使用,例如同步一个目录到远程?

先找一些资料

http://www.iteye.com/topic/604436
http://blog.csdn.net/caianye/article/details/6670750
http://www.cnblogs.com/itech/archive/2009/08/10/1542945.html

http://everythinglinux.org/rsync/


原理
http://zh.wikipedia.org/wiki/Rsync
http://coolshell.cn/articles/7425.html

回答1: 我翻译了的小段关于rsync的优点和特点。

 Rsync 是一个易用易安装的小工具。Rsync 不仅是一个脚本化的FTP会话或者其他形式的文件传输的脚本,它会仅拷贝被改变文件的差量部分,经过压缩,并通过ssh协议安全的传输。这又一点拗口,但它意味着:

差量  -  仅仅实际被改变的文件片段将被传输,而非整个文件。这使得更新更快速,这对慢速的调制解调器来说非常好。 FTP将会传输整个文件,哪怕只有1字节的改变。

压缩  -  小块的差量片段在传输过程经过压缩,进一步节省传输的时间和网络的负载。

安全的shell  -  安全意识强的你肯定会喜欢这一点,并为此而使用它。rsync的流可以通过ssh协议加密会话替代rsh,当然这是可选的(如果你不想用ssh,你可以在/etc/inet.d  设置,并重启inet的守护进程,这样就关闭了它的安全性)

回答2:

配置服务器端:

hvn1:~ # cat /etc/rsyncd.conf
strict modes=yes
port = 873
gid = users
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid

[test]
uid=root
gid=root
path= /root/test
read only = no
write only = no
hosts allow = *
auth users = root
secrets file = /etc/rsyncd.secrets

hvn1:~ # cat /etc/rsyncd.secrets 
# user:passwd
root:hello123
hvn1:~ # ll /etc/rsyncd.secrets 
-rw------- 1 root root 28 Sep 23 13:40 /etc/rsyncd.secrets

 
hvn1:~ # ps -ef | grep rsync
root     27870     1  0 13:41 ?        00:00:00 /usr/bin/rsync --daemon
root     27985 26855  0 13:58 pts/6    00:00:00 grep rsync
hvn1:~ # netstat -na | grep 873
tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      
tcp        0      0 :::873                  :::*                    LISTEN

 配置客户端:

[root@bogon test1]# service xinetd status
xinetd (pid  2176) is running...

下载同步:

rsync -av --progress --delete root@10.0.23.61::test  /root/work/test1/ff/

         上传同步:

rsync -av --progress  /root/work/test1/ff/  root@10.0.23.61::test



posted @ 2013-09-23 14:00  程序员杰诺斯  阅读(107)  评论(0编辑  收藏  举报